.jod-shell{flex:1;flex-direction:column;min-height:100vh}.jod-main,.jod-shell{min-width:0;display:flex;background:#E8E8E8}.jod-main{flex:1;align-items:center;justify-content:center;padding:40px 24px}.jod-not-found{text-align:center;max-width:420px}.jod-not-found h1{font-size:24px;font-weight:700;margin:0 0 8px}.jod-not-found p{color:#666;margin:0 0 20px;font-size:15px}.jod-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;padding:14px 24px;background:#fff;border-bottom:1px solid #e8e3db;flex-wrap:wrap}.jod-back{width:36px;height:36px;border:none;border-radius:0;background:#F8F6F2;color:#181B20;font-size:18px;cursor:pointer;flex:none}.jod-back:hover{background:#F0EDE8}.jod-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:#8A9099;min-width:0}.jod-breadcrumb button{border:none;background:none;padding:0;color:#5A616B;cursor:pointer;font:inherit}.jod-breadcrumb button:hover{color:#181B20}.jod-breadcrumb span:last-child{color:#181B20;font-weight:600}.jod-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:0;font-size:13px;font-weight:600;margin-left:auto}.jod-status-dot{width:7px;height:7px;border-radius:0;flex:none}.jod-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}@media (min-width:900px){.jod-header-actions{width:auto;margin-left:8px}}.jod-header-btn{border:1.5px solid #dde0e4;background:#F8F6F2;color:#181B20;font-size:13px;font-weight:600;padding:8px 16px;border-radius:0;cursor:pointer}.jod-header-btn:hover{background:#F0EDE8}.jod-header-btn--primary{background:#157F73;border-color:#157F73;color:#fff}.jod-header-btn--primary:hover{background:#126B61}.jod-header-btn--pay{background:#F26B21;border-color:#F26B21;color:#fff}.jod-header-btn--pay:hover{background:#E05A12}.jod-content{display:grid;grid-template-columns:1fr;gap:20px;padding:20px 24px 40px;align-items:start}@media (min-width:1100px){.jod-content{grid-template-columns:minmax(0,1fr) 352px}}.jod-left{min-width:0}.jod-left,.jod-sidebar{display:flex;flex-direction:column;gap:16px}@media (min-width:1100px){.jod-sidebar{position:sticky;top:80px}}.jod-card{background:#fff;border-radius:0;padding:18px 20px 20px;box-shadow:0 1px 3px rgba(24,27,32,.04)}.jod-card-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.jod-card-dot{width:8px;height:8px;border-radius:0;flex:none}.jod-card-dot--orange{background:#F26B21}.jod-card-dot--teal{background:#157F73}.jod-card-title{font-size:15px;font-weight:700;color:#181B20;opacity:.85}.jod-card-meta{margin-left:auto;font-size:12px;color:#8A9099;font-weight:500}.jod-item-count{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.04em;color:#8A9099}.jod-timeline{overflow-x:auto;padding-bottom:4px}.jod-timeline,.jod-timeline-step{display:flex;align-items:flex-start}.jod-timeline-step{flex:1;min-width:88px}.jod-timeline-node-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;flex:none}.jod-timeline-node{width:32px;height:32px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:#F0EDE8;color:#8A9099}.jod-timeline-node--done{background:#157F73;color:#fff}.jod-timeline-node--active{background:#F26B21;color:#fff}.jod-timeline-label{font-size:11px;color:#8A9099;text-align:center;max-width:72px;line-height:1.25}.jod-timeline-label--done{color:#157F73;font-weight:600}.jod-timeline-label--active{color:#F26B21;font-weight:700}.jod-timeline-line{flex:1;height:4px;background:#E0DDD8;border-radius:0;margin:14px 4px 0;min-width:24px}.jod-timeline-line--done{background:#157F73}.jod-field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px 24px}.jod-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#8A9099;margin-bottom:4px}.jod-field-value{font-size:14px;color:#181B20;font-weight:500;word-break:break-word}.jod-tags-row{margin-top:16px;padding-top:14px;border-top:1px solid #f0ede8}.jod-tags-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#8A9099;margin-bottom:8px}.jod-tags{display:flex;flex-wrap:wrap;gap:8px}.jod-tag{font-size:12px;font-weight:600;padding:4px 12px;border-radius:0;border:1px solid transparent}.jod-tag--warn{background:#FFF1E8;border-color:#F2B58F;color:#C2480E}.jod-tag--ok{background:#E7F4F1;border-color:#A8D9CF;color:#137A6E}.jod-services-table{display:flex;flex-direction:column;gap:0}.jod-services-head,.jod-services-row{display:grid;grid-template-columns:1.2fr 1.4fr 56px 100px;gap:12px;align-items:center;padding:10px 0}.jod-services-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8A9099;border-bottom:1px solid #f0ede8;padding-top:0}.jod-services-row{font-size:14px;border-bottom:1px solid #f8f6f2}.jod-services-row:last-child{border-bottom:none}.jod-complaint-pill{display:inline-block;background:#F8F6F2;border:1px solid #e8e3db;border-radius:0;padding:4px 10px;font-size:13px;font-weight:500}.jod-services-part{color:#181B20;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.jod-services-part-name{line-height:1.35}.jod-warranty-tag{border:none;background:#E7F4F1;color:#0F7A6E;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;padding:4px 8px;cursor:pointer;transition:background .12s,color .12s}.jod-warranty-tag:hover{background:#0F7A6E;color:#fff}.jod-warranty-modal{width:min(640px,96vw);max-height:90vh;overflow:auto;padding:22px 24px}.jod-warranty-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.jod-warranty-modal__title{margin:0;font-size:20px;font-weight:700}.jod-warranty-modal__close{border:none;background:none;color:#666;font-size:24px;line-height:1;cursor:pointer;padding:0 4px}.jod-warranty-modal__actions{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid #f0ede8}.jod-warranty-modal .warranty-details-panel{margin-bottom:0}.jod-warranty-modal .warranty-details-panel__title:empty{display:none}.jod-services-qty{text-align:center;color:#5A616B}.jod-services-amt{text-align:right;font-weight:600}.jod-payment-head{margin-bottom:12px}.jod-payment-pill{display:inline-block;font-size:12px;font-weight:700;padding:5px 12px;border-radius:0;background:#FFF1E8;color:#C2480E}.jod-payment-pill--paid{background:#D7EFE7;color:#137A6E}.jod-payment-lines{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.jod-payment-line{font-size:14px;color:#5A616B}.jod-payment-line,.jod-payment-total{display:flex;justify-content:space-between}.jod-payment-total{align-items:center;padding-top:12px;border-top:1px solid #f0ede8;font-size:15px;font-weight:600}.jod-payment-total strong{font-size:20px;color:#181B20}.jod-verify-badge{margin-left:auto;font-size:11px;font-weight:700;padding:4px 10px;border-radius:0}.jod-verify-docs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.jod-verify-doc{font-size:13px;font-weight:600;color:#157F73;background:#E7F4F1;padding:8px 14px;border-radius:0;text-decoration:none}.jod-verify-doc:hover{background:#D7EFE7}.jod-signature-box{border:1.5px dashed #e8e3db;border-radius:0;padding:16px;background:#FAFAF8;text-align:center}.jod-signature-box img{max-width:100%;max-height:120px;object-fit:contain}.jod-signature-meta{margin-top:10px;font-size:12px;color:#8A9099}.jod-remarks{font-size:14px;line-height:1.55;color:#181B20;white-space:pre-wrap}.jod-photos{display:flex;flex-wrap:wrap;gap:12px}.jod-photo{width:120px;height:120px;object-fit:cover;border-radius:0;border:1px solid #e8e3db}.jod-activity{display:flex;flex-direction:column}.jod-activity-item{display:flex;gap:12px}.jod-activity-icon-wrap{display:flex;flex-direction:column;align-items:center;flex:none}.jod-activity-icon{width:32px;height:32px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}.jod-activity-line{width:2px;flex:1;min-height:16px;background:#E8E3DB;margin:4px 0}.jod-activity-body{padding-bottom:18px;min-width:0}.jod-activity-title{font-size:14px;font-weight:600;color:#181B20}.jod-activity-meta{font-size:12px;color:#8A9099;margin-top:2px}.jod-activity-note{margin-top:8px;font-size:13px;color:#5A616B;background:#F8F6F2;border-radius:0;padding:10px 12px;line-height:1.45}.jod-note-form{margin-top:8px;padding-top:16px;border-top:1px solid #f0ede8}.jod-note-label{font-size:12px;font-weight:700;color:#5A616B;margin-bottom:8px}.jod-note-input{width:100%;min-height:80px;border:1.5px solid #e8e3db;border-radius:0;padding:12px 14px;font-size:14px;font-family:inherit;resize:vertical;background:#FAFAF8}.jod-note-input:focus{outline:none;border-color:#157F73}.jod-note-actions{display:flex;justify-content:flex-end;margin-top:10px}.jod-note-submit{border:none;background:#157F73;color:#fff;font-size:13px;font-weight:600;padding:10px 18px;border-radius:0;cursor:pointer}.jod-note-submit:hover{background:#126B61}.jod-panel{background:#fff;border-radius:0;padding:16px 18px;box-shadow:0 1px 3px rgba(24,27,32,.04)}.jod-panel-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8A9099;margin-bottom:12px}.jod-status-list,.jod-tech-list{display:flex;flex-direction:column;gap:8px}.jod-status-option,.jod-tech-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1.5px solid #e8e3db;border-radius:0;background:#FAFAF8;font-size:14px;font-weight:500;cursor:pointer;text-align:left}.jod-status-option:hover,.jod-tech-option:hover{border-color:#D5D0C8}.jod-status-option-dot{width:8px;height:8px;border-radius:0;flex:none}.jod-status-check{margin-left:auto;font-size:14px;font-weight:700}.jod-rwr-btn{display:block;width:100%;padding:11px 14px;border:none;border-radius:0;background:#C2291D;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.jod-rwr-btn:hover{background:#A82218}.jod-tech-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:none}.jod-tech-info{display:flex;flex-direction:column;min-width:0}.jod-tech-name{font-size:14px;font-weight:600;color:#181B20}.jod-tech-role{font-size:12px;color:#8A9099}.jod-meta-list{display:flex;flex-direction:column;gap:10px}.jod-meta-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:#5A616B}.jod-meta-row span:last-child{font-weight:600;color:#181B20;text-align:right}.jod-meta-id{font-family:ui-monospace,monospace;font-size:12px}.jod-meta-row--icon span:last-child{display:inline-flex;align-items:center;gap:6px}.jod-meta-cat img{width:18px;height:18px;object-fit:contain}.jod-meta-divider{height:1px;background:#F0EDE8;margin:4px 0}.jod-meta-row--total{font-size:15px;font-weight:700}.jod-meta-row--total span:last-child{font-size:18px;color:#157F73}.jod-services-actions{margin-top:14px;padding-top:14px;border-top:1px solid #f0ede8}.jod-add-part-btn{border:1.5px dashed #c9cdd3;background:#FAFAF8;color:#157F73;font-size:13px;font-weight:600;padding:10px 14px;border-radius:0;cursor:pointer;width:100%}.jod-add-part-btn:hover{background:#E7F4F1;border-color:#157F73}.jod-tech-current{margin-top:10px;font-size:12px;color:#8A9099}.jod-tech-current strong{color:#181B20}.jod-panel .search-select-root{width:100%}.jod-confirm-dialog{width:420px;max-width:94vw}.jod-confirm-title{font-size:18px;font-weight:700;margin-bottom:10px}.jod-confirm-message{font-size:14px;color:#5A616B;line-height:1.5;margin-bottom:22px}.jod-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.jod-add-part-modal,.jod-edit-modal{width:560px;max-width:94vw}.jod-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.jod-edit-title{font-size:18px;font-weight:700}.jod-edit-sub{font-size:14px;color:#666;margin-top:4px}.jod-edit-close{border:none;background:none;color:#666;font-size:24px;line-height:1;cursor:pointer;padding:0 4px}.jod-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.jod-edit-field--full{grid-column:1/-1}.jod-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.jod-add-part-preview{margin-top:7px;padding:11px 14px;border:1.5px solid #e8e3db;border-radius:0;background:#FAFAF8;font-size:16px;font-weight:700;color:#157F73}.jod-add-part-error{margin-top:12px;font-size:13px;color:#C2291D}.jod-add-part-hint{padding:12px 14px;font-size:13px;color:#666;background:#F6F6F6;border:1px solid #eceef1}.jod-add-part-modes{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.jod-add-part-modes__label{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.3px;margin-right:4px}.jod-add-part-optional{font-size:11px;font-weight:500;color:#888;text-transform:none;letter-spacing:0}.jod-add-part-current{margin-bottom:16px;padding:12px 14px;background:#F6F6F6;border:1px solid #eceef1}.jod-add-part-current__label{font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.jod-add-part-current__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.jod-add-part-current__list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:#444}.jod-add-part-current__qty{font-size:12px;color:#888}@media print{.jod-header-actions,.jod-note-form,.jod-sidebar,.sidebar{display:none!important}.app-shell,.jod-shell{display:block}.jod-content{grid-template-columns:1fr}}.jod-branch-current{font-size:15px;font-weight:600;color:#1a1d22;margin-bottom:12px}.jod-transfer-btn{display:block;width:100%;padding:10px 14px;border:1.5px solid #7b5cc8;background:#faf8ff;color:#5E3AA8;font-size:13px;font-weight:600;cursor:pointer}.jod-transfer-btn:hover{background:#f0ebfa}.jod-transfer-modal{max-width:440px;padding:0}.jod-transfer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0}.jod-transfer-head h2{margin:0;font-size:18px;font-weight:700}.jod-transfer-close{border:none;background:none;font-size:24px;line-height:1;color:#8a9099;cursor:pointer}.jod-transfer-intro{margin:12px 20px 0;font-size:14px;color:#5a616b;line-height:1.5}.jod-transfer-field{display:block;padding:16px 20px}.jod-transfer-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 20px 20px}.jod-readonly-banner{margin:0 24px 16px;padding:12px 16px;background:#EDE8F5;border:1px solid #d8ccef;color:#5E3AA8;font-size:14px;line-height:1.5}.jod-readonly-value{font-size:14px;font-weight:600;color:#1a1d22}.jod-readonly-note{margin:0;font-size:13px;color:#6b7280;line-height:1.5}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(145deg,#1a2332,#2d3a4f 50%,#1a2332)}.login-card{width:100%;max-width:420px;background:#fff;padding:32px 28px;box-shadow:0 24px 48px rgba(0,0,0,.25)}.login-brand{text-align:center;margin-bottom:28px}.login-brand-mark{width:52px;height:52px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:#EA591A;color:#fff;font-weight:800;font-size:18px}.login-brand h1{margin:0 0 6px;font-size:22px;font-weight:700}.login-brand p{margin:0;color:#6b7280;font-size:14px}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.login-field input{padding:11px 12px;border:1.5px solid #e5e7eb;border-radius:0;font-size:14px}.login-error{margin:0;color:#c2291d;font-size:13px}.login-submit{margin-top:4px;padding:12px 16px;border:none;background:#EA591A;color:#fff;font-weight:600;cursor:pointer}.login-submit:hover:not(:disabled){background:#d44f14}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-demo{margin-top:24px;padding-top:20px;border-top:1px solid #e8e3db}.login-demo-title{margin:0 0 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a9099}.login-demo-account{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:8px;padding:10px 12px;border:1.5px solid #e8e3db;background:#fafaf8;text-align:left;cursor:pointer}.login-demo-account:hover{border-color:#EA591A;background:#fff8f4}.login-demo-branch{font-size:14px;font-weight:600;color:#1a1d22}.login-demo-user{font-size:12px;color:#6b7280}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#5a616b}.auth-loading-spinner{width:32px;height:32px;border:3px solid #e8e3db;border-top-color:#ea591a;border-radius:50%;animation:spin .8s linear infinite}.sidebar-branch{margin:0 12px 12px;padding:10px 12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.sidebar-branch-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.55);margin-bottom:4px}.sidebar-branch-name{display:block;font-size:13px;font-weight:600;color:#fff}.sidebar-branch-user{display:block;margin-top:2px;font-size:12px;color:rgba(255,255,255,.7)}