:root{--paper: #eef1f4;--surface: #ffffff;--ink: #1c2733;--ink-dim: #5b6b7b;--line: #d5dde4;--accent: #e8611a;--accent-dim: #fdeee4;--teal: #177a7a;--teal-dim: #d7e8e8;--green: #2f7d4f;--green-dim: #dcefe2;--red: #c23b3b;--red-dim: #f7dede;--blue: #3a7bc8;--blue-dim: #e8f0fe;--purple: #7a3fb8;--purple-dim: #efe6f7;--font-body: "Vazirmatn", system-ui, sans-serif;--font-display: "Lalezar", "Vazirmatn", sans-serif;--font-mono: "Courier New", ui-monospace, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.2rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--radius: 10px;--radius-lg: 16px;--shadow: 0 2px 10px rgba(28, 39, 51, .08);--shadow-lg: 0 12px 32px rgba(28, 39, 51, .14);--z-base: 1;--z-topbar: 100;--z-taskbar: 100;--z-notif-panel: 200;--z-overlay: 500;--z-modal: 600;--z-toast: 900;--topbar-h: 64px;--taskbar-h: 72px;--chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b6b7b' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}@font-face{font-family:Vazirmatn;src:url(font/Vazirmatn.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Lalezar;src:url(font/Lalezar.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--ink);direction:rtl;min-height:100vh;line-height:1.7;-webkit-tap-highlight-color:transparent;background:radial-gradient(1000px 480px at 88% -10%,rgba(232,97,26,.07),transparent 60%),radial-gradient(800px 500px at -10% 110%,rgba(23,122,122,.06),transparent 55%),linear-gradient(180deg,#f2f5f8,var(--paper))}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(23,122,122,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(23,122,122,.04) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(#000 50%,transparent);mask-image:linear-gradient(#000 50%,transparent)}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}[hidden]{display:none!important}img{max-width:100%;display:block}::selection{background:var(--accent-dim);color:var(--ink)}input::placeholder,textarea::placeholder{color:#9aa7b3}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}select{cursor:pointer}details summary{cursor:pointer;font-size:var(--text-sm);color:var(--teal);font-weight:700}details pre{margin-top:6px;padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-size:.7rem;max-width:320px;overflow:auto;direction:ltr;text-align:left}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}*::-webkit-scrollbar-thumb:hover{background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.muted{color:var(--ink-dim);font-size:var(--text-sm)}.mono,.mono-link{font-family:var(--font-mono);font-size:.85em}.mono-link{color:var(--teal);font-weight:700}.mono-link:hover{text-decoration:underline}.display{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.2;font-weight:400}.hint{font-size:var(--text-xs);color:var(--ink-dim);margin-top:4px;line-height:1.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 20px;border-radius:var(--radius);font-weight:800;font-size:var(--text-base);background:var(--paper);border:2px solid var(--line);color:var(--ink);transition:transform .15s,box-shadow .15s,background .15s,color .15s,border-color .15s;white-space:nowrap;line-height:1.3}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}.btn.loading{pointer-events:none;animation:btnPulse 1s ease-in-out infinite}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 14px #e8611a40}.btn-primary:hover{box-shadow:0 8px 22px #e8611a59}.btn-teal{background:var(--teal);border-color:var(--teal);color:#fff}.btn-teal:hover{box-shadow:0 8px 22px #177a7a4d}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger-o{background:var(--red-dim);border-color:transparent;color:var(--red)}.btn-danger-o:hover{background:var(--red);color:#fff}.btn-ghost{background:var(--paper);color:var(--ink-dim)}.btn-ghost:hover{background:#e3e9ee;color:var(--ink)}.btn-block{width:100%}.btn-tall{min-height:54px;font-size:var(--text-md)}.btn-sm{padding:8px 14px;font-size:var(--text-sm);min-height:auto}.link-btn{background:none;color:var(--teal);font-size:var(--text-sm);font-weight:700;text-decoration:underline;transition:color .15s}.link-btn:hover{color:var(--accent)}.field{margin-bottom:16px}.field label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--ink-dim);margin-bottom:6px}.field input,.field select,.field textarea,.search-input,#order-status-filter{width:100%;min-height:48px;padding:0 14px;border:2px solid var(--line);border-radius:var(--radius);font-size:var(--text-base);background:var(--paper);transition:border-color .2s,box-shadow .2s,background .2s}.field textarea{padding:12px 14px;min-height:80px;resize:vertical;line-height:1.6}.field select,.search-input,#order-status-filter{appearance:none;background-image:var(--chevron);background-repeat:no-repeat;background-position:left 14px center;background-size:12px;padding-left:36px}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus,#order-status-filter:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #e8611a1f}.check-field label{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--ink);font-size:var(--text-base)}.check-field input{width:auto;min-height:auto}.search-input,#order-status-filter{width:auto;min-width:220px}#order-status-filter{min-width:180px}.form-row-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-row-inline input,.form-row-inline select{flex:1;min-width:160px;min-height:48px;padding:0 14px;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);font-size:var(--text-base);transition:border-color .2s,background .2s}.form-row-inline input:focus,.form-row-inline select:focus{outline:none;border-color:var(--accent);background:#fff}.form-row-inline .btn{min-height:48px}#settings-form .field{max-width:640px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;z-index:var(--z-base)}.login-card{width:min(440px,100%);background:var(--surface);border-radius:var(--radius-lg);border-top:6px solid var(--accent);box-shadow:var(--shadow-lg);padding:2.4rem 2rem;animation:cardIn .5s ease backwards}.login-card.shake{animation:shake .4s}.login-head{text-align:center;margin-bottom:1.6rem}.login-stamp{width:60px;height:60px;margin:0 auto 14px;border:3px solid var(--accent);border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.5rem;color:var(--accent);transform:rotate(-8deg);transition:transform .3s}.login-card:hover .login-stamp{transform:rotate(4deg) scale(1.05)}.login-head h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:400}.login-head p{font-size:var(--text-sm);color:var(--ink-dim);margin-top:4px}.sys-ok{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--green);background:var(--green-dim);padding:5px 14px;border-radius:99px;margin-top:14px}.sys-ok .dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:1.6rem}.login-tab{padding:12px;border-radius:var(--radius);border:2px solid var(--line);background:var(--paper);font-weight:700;font-size:var(--text-base);color:var(--ink-dim);transition:all .18s}.login-tab:hover{border-color:var(--ink-dim)}.login-tab.active{background:var(--ink);border-color:var(--ink);color:#fff}.login-pane{display:none}.login-pane.active{display:block;animation:fadeUp .3s ease}.code-input{text-align:center;letter-spacing:12px;font-size:1.5rem!important;font-weight:900;font-family:var(--font-display)!important}.topbar{position:sticky;top:0;z-index:var(--z-topbar);background:var(--ink);color:#fff;box-shadow:0 4px 18px #00000038;border-bottom:3px solid var(--accent)}.topbar-inner{max-width:1320px;margin:auto;padding:0 24px;height:var(--topbar-h);display:flex;align-items:center;gap:18px;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-stamp{width:36px;height:36px;border:2px solid var(--accent);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-weight:900;transform:rotate(-8deg);transition:transform .3s}.brand:hover .brand-stamp{transform:rotate(6deg) scale(1.06)}.brand-name{font-family:var(--font-display);font-size:var(--text-xl)}.topnav{display:flex;gap:2px;overflow-x:auto;flex:1;scrollbar-width:none}.topnav::-webkit-scrollbar{display:none}.nav-link{display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:var(--radius);color:#b9c4ce;font-size:var(--text-sm);font-weight:600;white-space:nowrap;transition:all .18s;border-bottom:3px solid transparent}.nav-link:hover{color:#fff;background:#ffffff14}.nav-link.active{color:var(--accent);background:#e8611a24;border-bottom-color:var(--accent)}.nav-ic{font-size:1.1rem}.user-chip{display:flex;align-items:center;gap:14px;flex-shrink:0}.me-box{text-align:left}.me-name{display:block;font-size:var(--text-sm);font-weight:800}.me-role{display:block;font-size:var(--text-xs);color:#93a1ad}#logout-btn{background:#ffffff1a;border:2px solid rgba(255,255,255,.2);color:#fff;font-size:var(--text-sm)}#logout-btn:hover{background:var(--red);border-color:var(--red)}.notif-wrap{position:relative}.notif-btn{position:relative;background:#ffffff1a;width:44px;height:44px;border-radius:50%;font-size:1.15rem;transition:background .2s,transform .2s}.notif-btn:hover{background:#fff3;transform:rotate(-12deg)}.notif-badge{position:absolute;top:-4px;left:-4px;background:var(--red);color:#fff;font-size:var(--text-xs);font-weight:800;min-width:18px;height:18px;border-radius:99px;display:grid;place-items:center;padding:0 4px;animation:fadeUp .25s ease}.notif-panel{position:absolute;top:calc(100% + 10px);left:0;width:350px;max-height:420px;overflow:auto;background:var(--surface);color:var(--ink);border-radius:14px;box-shadow:var(--shadow-lg);border:1px solid var(--line);z-index:var(--z-notif-panel);animation:fadeUp .2s ease}.notif-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1;font-size:var(--text-base)}.notif-item{padding:12px 16px;border-bottom:1px dashed var(--line);font-size:var(--text-sm);cursor:pointer;transition:background .15s}.notif-item:hover{background:var(--paper)}.notif-item.unread{background:var(--accent-dim);border-inline-start:3px solid var(--accent)}.notif-item time{display:block;font-size:var(--text-xs);color:var(--ink-dim);margin-top:4px}.container{max-width:1320px;margin:auto;padding:28px 24px calc(var(--taskbar-h) + 40px + env(safe-area-inset-bottom));position:relative;z-index:var(--z-base)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px;margin-bottom:20px}.panel-title{font-size:var(--text-md);font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:8px}.panel-head-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-head-row .panel-title{margin-bottom:0}.table-panel{padding:0;overflow:hidden}.tb-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 18px;border-radius:12px;color:#93a1ad;font-size:var(--text-xs);font-weight:700;transition:all .2s;min-width:80px}.job-ticket-title{font-weight:800;font-size:var(--text-md);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ceo-alert span{color:var(--ink)}.ceo-quick-panel{margin-top:18px}.ceo-quick-links{display:flex;flex-wrap:wrap;gap:8px}.ceo-quick-link{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);font-weight:800}.ceo-quick-link:hover{border-color:var(--accent);background:var(--accent-dim)}.ceo-quick-link span{font-size:1.1rem}.ceo-system-details{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}.ceo-system-details summary{font-weight:800;color:var(--ink-dim)}.ceo-system-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ceo-system-links a{padding:7px 10px;color:var(--ink-dim);font-size:var(--text-sm)}.invoice-total{font-size:var(--text-md);font-weight:900;color:var(--teal);margin-top:12px}.invoice-field-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;background:var(--surface)}.invoice-field-row .if-name{flex:1}.invoice-field-row .if-name small{display:block;font-size:.7rem;color:var(--ink-dim)}.invoice-field-row .if-section{width:140px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:.8rem}.invoice-field-row .if-label{flex:1;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:.8rem}.invoice-field-row .if-req-label{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ink-dim);white-space:nowrap}.invoice-item-row input{padding:8px 12px;border:1px solid var(--line);border-radius:6px;font-size:.85rem}.spec-edit-row{display:flex;align-items:center;gap:10px;padding:6px 0}.spec-edit-row b{min-width:120px;font-size:.85rem}.spec-edit-row input{padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:.85rem}.invoice-field-row span{display:flex;flex-direction:column}.invoice-field-row small{color:var(--ink-dim);font-size:var(--text-xs)}.invoice-input-row{gap:12px}.invoice-input-row .field{flex:1;margin-bottom:0}.invoice-order-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;margin:6px 0;background:var(--paper);border-radius:var(--radius)}.invoice-order-item label{flex:1}.invoice-order-item input[type=number]{width:180px;min-height:42px;padding:0 10px;border:2px solid var(--line);border-radius:var(--radius)}.job-ticket-desc{font-size:var(--text-sm);color:var(--ink-dim);margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.table-wrap{overflow:auto;max-height:600px;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:600px}th{background:var(--paper);color:var(--ink-dim);font-size:var(--text-sm);font-weight:700;text-align:right;padding:14px 16px;border-bottom:2px solid var(--line);position:sticky;top:0;z-index:3;white-space:nowrap}td{padding:14px 16px;border-bottom:1px solid #e8edf2;font-size:var(--text-base);vertical-align:middle;line-height:1.5}tbody tr{transition:background .15s}tbody tr:hover{background:#fdf3ec}tbody tr:last-child td{border-bottom:none}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.table-panel th:first-child,.table-panel td:first-child{position:sticky;inset-inline-start:0;z-index:2;background:var(--surface)}.table-panel th:first-child{background:var(--paper);z-index:4}tbody tr:hover td:first-child{background:#fdf3ec}.stat-strip{display:flex;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}.stat{flex:1 1 160px;padding:22px 24px;position:relative;transition:background .25s}.stat+.stat{border-inline-start:1px dashed var(--line)}.stat:hover{background:#fdf3ec}.stat b{display:block;font-family:var(--font-display);font-size:var(--text-3xl);line-height:1.1;color:var(--ink);font-weight:400;transition:color .25s}.stat:hover b{color:var(--accent)}.stat span{display:block;font-size:var(--text-sm);color:var(--ink-dim);font-weight:600;margin-top:4px}.stat:after{content:"";position:absolute;inset-inline-start:0;bottom:0;height:3px;width:0;background:var(--accent);transition:width .35s}.stat:hover:after{width:100%}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px;margin-bottom:24px}.app-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 10px 18px;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-lg);transition:all .2s cubic-bezier(.2,.9,.3,1.1);position:relative;overflow:hidden}.app-tile:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(232,97,26,.08),transparent 70%);opacity:0;transition:opacity .25s}.app-tile:hover{transform:translateY(-4px) scale(1.03);border-color:var(--accent);box-shadow:0 10px 28px #e8611a26}.app-tile:hover:before{opacity:1}.app-tile:active{transform:translateY(-1px) scale(.98)}.app-ic{font-size:2.1rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:transform .25s}.app-tile:hover .app-ic{transform:scale(1.15) rotate(-4deg)}.app-label{font-size:var(--text-sm);font-weight:800;color:var(--ink-dim);text-align:center;transition:color .2s}.app-tile:hover .app-label{color:var(--accent)}.taskbar{position:fixed;bottom:0;inset-inline:0;z-index:var(--z-taskbar);display:flex;align-items:stretch;justify-content:center;gap:6px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--ink);box-shadow:0 -4px 20px #00000040;border-top:2px solid rgba(232,97,26,.4)}.tb-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 18px;border-radius:12px;color:#93a1ad;font-size:var(--text-xs);font-weight:700;transition:all .2s;min-width:80px}.tb-btn:hover{color:#fff;background:#ffffff14}.tb-btn.active{color:var(--accent);background:#e8611a26}.tb-ic{font-size:1.3rem;line-height:1}.tb-txt{font-size:var(--text-xs)}.tb-spacer{min-width:80px}.tb-home{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 24px;margin-top:-20px;border-radius:50% 50% 14px 14px;background:var(--accent);color:#fff;box-shadow:0 4px 16px #e8611a66;transition:all .2s;min-width:72px}.tb-home:hover{transform:translateY(-3px);box-shadow:0 8px 24px #e8611a80}.tb-home:active{transform:translateY(0) scale(.95)}.tb-home.active{background:#b34a12}.tb-home-ic{font-size:1.5rem;line-height:1;padding-top:4px}.tb-home .tb-txt{font-size:var(--text-xs);font-weight:800}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:99px;font-size:var(--text-xs);font-weight:700}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.role{background:var(--teal-dim);color:var(--teal)}.badge.ok{background:var(--green-dim);color:var(--green)}.badge.ok .dot{background:var(--green);animation:pulse 2s infinite}.badge.off{background:var(--red-dim);color:var(--red)}.badge.off .dot{background:var(--red)}.mat-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 13px;border-radius:99px;font-size:var(--text-xs);font-weight:800}.mat-customer{background:var(--blue-dim);color:var(--blue)}.mat-workshop{background:var(--accent-dim);color:var(--accent)}.mat-mixed{background:var(--purple-dim);color:var(--purple)}.mat-none{background:var(--paper);color:var(--ink-dim);border:1px dashed var(--line)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.job-ticket{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border-inline-start:6px solid var(--accent);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.job-ticket:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.job-ticket.priority-urgent{border-inline-start-color:var(--red)}.job-ticket.priority-urgent:hover{box-shadow:0 12px 32px #c23b3b2e}.job-ticket.status-done{border-inline-start-color:var(--green)}.job-ticket-body{padding:20px 22px 16px}.job-ticket-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.job-ticket-title{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-ticket-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-dim);white-space:nowrap}.job-ticket-client{font-size:var(--text-md);color:var(--teal);font-weight:800}.job-ticket-client strong{display:block}.task-specs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.task-spec{padding:5px 9px;border-radius:7px;background:var(--blue-dim);color:var(--ink);font-size:var(--text-sm)}.task-spec b{color:var(--teal)}.task-detail-specs{margin-top:14px}.task-detail-specs>b{display:block;margin-bottom:8px}.task-customer-focus{padding:14px 16px;border-radius:var(--radius);background:var(--teal-dim);border-inline-start:5px solid var(--teal);margin-bottom:14px}.task-customer-focus span{display:block;color:var(--ink-dim);font-size:var(--text-sm)}.task-customer-focus strong{display:block;color:var(--teal);font-size:var(--text-xl);line-height:1.4}.task-detail-files{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.task-file-list{display:grid;gap:8px;margin-top:10px}.task-file-download{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink)}.task-file-download:hover{border-color:var(--teal);background:var(--teal-dim)}.task-file-download strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-file-download small{color:var(--ink-dim);white-space:nowrap}.file-edit-section{margin-top:12px}.file-edit-section>b{display:block;margin-bottom:8px}.file-edit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;margin-bottom:7px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.file-edit-row>a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--teal);font-weight:700}.file-edit-actions{display:flex;gap:5px;flex-shrink:0}.report-form-intro{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;margin-bottom:16px;border-radius:var(--radius);background:var(--teal-dim);color:var(--ink);font-size:var(--text-sm)}.report-form-intro span,.optional-label{color:var(--ink-dim);font-size:var(--text-xs)}.required-label{color:var(--red);font-size:var(--text-xs)}.form-error{color:var(--red);background:var(--red-dim);border-radius:var(--radius);padding:10px 12px;margin-top:10px;font-size:var(--text-sm)}.report-field.optional-field{opacity:.9}.field-invalid{border-color:var(--red)!important;background:var(--red-dim)!important;box-shadow:0 0 0 3px #dc262626!important}.operator-app-grid{display:none}.ceo-dashboard{margin-bottom:18px}.ceo-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.ceo-section-head h2{font-size:var(--text-md);font-weight:900}.ceo-section-head span{color:var(--ink-dim);font-size:var(--text-sm)}.ceo-system-section{padding-top:4px}.ceo-system-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.ceo-system-grid .app-tile{padding:14px 8px 12px;opacity:.82}.ceo-alerts-panel{border-inline-start:5px solid var(--red)}.ceo-alert-list{display:grid;gap:8px}.ceo-alert{display:grid;grid-template-columns:1fr 1.5fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius);background:var(--red-dim);color:var(--ink)}.ceo-alert strong{color:var(--red)}.ceo-alert b{color:var(--red);font-size:var(--text-sm)}.operator-workspace .stat-strip{margin-bottom:16px}.operator-primary-panel{order:-1}.job-ticket-desc{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.job-ticket-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;align-items:center}.job-ticket-actions{display:flex;gap:8px;padding:16px 22px 20px;border-top:2px dashed var(--line);margin-top:4px}.job-ticket-actions .btn{min-height:48px;font-size:var(--text-base)}.stamp-done{position:absolute;top:14px;left:14px;border:3px solid var(--green);color:var(--green);border-radius:8px;padding:2px 10px;font-weight:900;font-size:var(--text-xs);font-family:var(--font-display);letter-spacing:1px;transform:rotate(-10deg);opacity:.9;background:#dcefe299;z-index:2}.stage-group{border:2px dashed var(--line);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px;background:#fbfcfd;transition:border-color .2s,box-shadow .2s}.stage-group:hover{border-color:var(--teal);box-shadow:var(--shadow)}.stage-group-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.stage-num{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--font-display);font-size:var(--text-md);display:grid;place-items:center;flex-shrink:0}.stage-title{flex:1;min-width:180px;min-height:44px;padding:0 14px;border:2px solid var(--line);border-radius:var(--radius);background:#fff;font-size:var(--text-base);transition:border-color .2s,box-shadow .2s}.stage-title:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #177a7a1f}.stage-tasks{border-inline-start:2px solid var(--line);margin-inline-start:18px;padding-inline-start:16px;margin-bottom:10px}.stage-track{display:flex;flex-direction:column;gap:10px}.stage-item{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--paper);transition:transform .15s,box-shadow .15s,border-color .2s,opacity .2s}.stage-item:hover{transform:translate(-3px);box-shadow:var(--shadow)}.stage-item.active{border-color:var(--accent);border-inline-start:4px solid var(--accent);background:#fff}.stage-item.done{border-color:var(--green);border-inline-start:4px solid var(--green)}.stage-item.waiting{opacity:.72}.stage-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.stage-chip{min-width:28px;height:28px;padding:0 8px;border-radius:99px;background:var(--ink);color:#fff;font-family:var(--font-display);font-size:var(--text-base);display:inline-grid;place-items:center}.stage-chip.sm{min-width:22px;height:22px;font-size:var(--text-sm)}.stage-count{margin-inline-start:auto;font-size:var(--text-xs);color:var(--ink-dim)}.stage-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden}.stage-bar i{display:block;height:100%;border-radius:99px;background:var(--green);transition:width .6s cubic-bezier(.2,.9,.3,1)}.stage-item.active .stage-bar i{background:var(--accent)}.devices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;justify-items:center}.device-card{background:var(--paper);width:120px;height:120px;border:2px solid transparent;border-radius:var(--radius);padding:14px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:transform .2s,border-color .2s,box-shadow .2s;font-family:inherit}.device-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.device-card.free{border-color:var(--green)}.device-card.busy{border-color:var(--red)}.device-card.maintenance{border-color:var(--accent)}.device-icon{font-size:1.8rem}.device-name{font-size:var(--text-sm);font-weight:700}.device-status{font-size:var(--text-xs);color:var(--ink-dim)}.device-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.device-pick-btn{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .15s}.device-pick-btn:hover{border-color:var(--accent);background:#fdf3ec;transform:scale(1.03)}.device-pick-btn .device-name{font-size:var(--text-sm)}.overlay{position:fixed;inset:0;background:#1c27338c;backdrop-filter:blur(3px);display:none;place-items:center;padding:20px;z-index:var(--z-overlay)}.overlay.open{display:grid;animation:fadeIn .2s ease}.modal{width:min(640px,100%);max-height:88vh;overflow:auto;background:var(--surface);border-radius:var(--radius-lg);border-top:5px solid var(--accent);box-shadow:var(--shadow-lg);padding:24px;animation:modalIn .25s cubic-bezier(.2,.9,.3,1.15);z-index:var(--z-modal);display:flex;flex-direction:column}.modal-sm{width:min(440px,100%)}.modal.center{text-align:center}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-shrink:0}.modal-head h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400}.modal-x{background:var(--paper);width:36px;height:36px;border-radius:50%;font-size:1.3rem;color:var(--ink-dim);transition:all .2s;flex-shrink:0}.modal-x:hover{background:var(--red-dim);color:var(--red);transform:rotate(90deg)}.modal form{display:flex;flex-direction:column;flex:1;min-height:0}.modal-actions{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);flex-shrink:0;position:sticky;bottom:-24px;background:var(--surface);z-index:1}.modal-actions .btn{flex:1 1 auto}.modal-actions .btn-primary,.modal-actions .btn-danger,.modal-actions .btn-teal{flex:1 1 60%}.modal-actions .btn-ghost{flex:1 1 40%}.confirm-text{font-size:var(--text-base);margin:4px 0 18px;line-height:1.9;white-space:pre-line}.checklist{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}.check-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--paper);border-radius:var(--radius);font-size:var(--text-base);cursor:pointer;transition:background .15s,transform .15s}.check-row:hover{background:var(--accent-dim);transform:translate(-3px)}.check-row input{width:18px;height:18px}.sheet-overlay{position:fixed;inset:0;background:#1c27338c;backdrop-filter:blur(3px);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .25s;padding:20px}.sheet-overlay.active{opacity:1;visibility:visible}.sheet{background:var(--surface);width:100%;max-width:580px;max-height:88vh;overflow:auto;border-radius:20px;border-top:5px solid var(--teal);padding:24px 26px;transform:translateY(24px) scale(.98);transition:transform .3s cubic-bezier(.32,.72,0,1);box-shadow:var(--shadow-lg)}.sheet-overlay.active .sheet{transform:translateY(0) scale(1)}.sheet-handle{width:40px;height:4px;background:var(--line);border-radius:99px;margin:0 auto 16px}.sheet h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;margin-bottom:12px}.sheet-actions{display:flex;gap:10px;margin-top:18px}.sheet-actions .btn{flex:1}#toasts{position:fixed;bottom:calc(var(--taskbar-h) + 16px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:8px;width:min(400px,calc(100% - 2rem));z-index:var(--z-toast)}.toast{background:var(--ink);color:#fff;padding:14px 20px;border-radius:var(--radius);font-size:var(--text-base);box-shadow:var(--shadow-lg);border-inline-start:4px solid var(--green);animation:toastIn .3s ease}.toast.error{border-inline-start-color:var(--red);background:var(--red)}.toast.out{animation:toastOut .3s ease forwards}.task-row{border:1px dashed var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px;background:#fbfcfd;transition:border-color .2s,box-shadow .2s}.task-row:hover{border-color:var(--accent-dim);box-shadow:var(--shadow)}.task-row hr{border:0;border-top:1px dashed var(--line);margin:14px 0 0}.upload-box{display:block;border:2px dashed var(--line);border-radius:var(--radius);padding:14px 16px;background:#fbfcfd;cursor:pointer;transition:border-color .2s,background .2s,transform .15s}.upload-box:hover{border-color:var(--accent);background:#fdf3ec}.upload-box:active{transform:scale(.995)}.upload-box input{display:none}.upload-box .up-label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--ink-dim);transition:color .2s}.upload-box:hover .up-label{color:var(--accent)}.file-chip{display:inline-flex;align-items:center;gap:6px;background:var(--teal-dim);color:var(--teal);border-radius:99px;padding:6px 14px;font-size:var(--text-sm);font-weight:700;margin:3px;transition:transform .15s,box-shadow .15s}.file-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.file-chip a{color:inherit;text-decoration:underline}.file-chip a:hover{color:var(--accent)}.file-chip .rm-file{background:none;color:var(--red);font-weight:900;font-size:1rem;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;transition:all .15s}.file-chip .rm-file:hover{background:var(--red);color:#fff}.tr-files{margin-top:10px}#rf-modal .modal{width:min(860px,100%)}.rf-head{display:grid;grid-template-columns:90px 1fr 110px 1fr 70px 44px 44px 44px 40px;gap:6px;font-size:var(--text-xs);color:var(--ink-dim);font-weight:700;margin-bottom:8px}#rf-list{max-height:400px;overflow:auto;padding:4px 2px;margin-bottom:12px}.rf-row{display:grid;grid-template-columns:90px 1fr 110px 1fr 70px 44px 44px 44px 40px;gap:6px;align-items:center;margin-bottom:8px;padding:6px 8px;border-radius:8px;transition:background .15s;animation:fadeUp .25s ease}.rf-row:hover{background:#fbfcfd}.rf-row input,.rf-row select{min-height:40px;padding:0 10px;border:2px solid var(--line);border-radius:8px;background:var(--paper);font-size:var(--text-sm);width:100%;transition:border-color .2s,background .2s}.rf-row input:focus,.rf-row select:focus{outline:none;border-color:var(--accent);background:#fff}.rf-row .rf-key{font-family:var(--font-mono);direction:ltr}.rf-row .rf-key[readonly]{background:#e3e9ee;color:var(--ink-dim);border-style:dashed}.rf-row input[type=checkbox]{width:18px;height:18px;min-height:auto;justify-self:center}.rf-del{width:34px;height:34px;border-radius:8px;background:var(--red-dim);color:var(--red);font-weight:900;font-size:1.1rem;transition:all .15s}.rf-del:hover{background:var(--red);color:#fff;transform:rotate(90deg)}.report-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0}.report-kv .kv{background:var(--paper);border-radius:8px;padding:12px 16px;border-inline-start:3px solid var(--teal);transition:transform .15s,box-shadow .15s}.report-kv .kv:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.report-kv .kv b{display:block;font-size:var(--text-xs);color:var(--ink-dim);font-weight:700;margin-bottom:3px}.report-kv .kv span{font-weight:800;font-size:var(--text-base)}#pd-body .report-kv .kv,#md-body .report-kv .kv,#dd-body .report-kv .kv{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px}#pd-body .report-kv .kv b,#md-body .report-kv .kv b,#dd-body .report-kv .kv b{display:inline;margin:0}.file-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px}.file-link{flex:1;color:var(--teal);font-weight:600;text-decoration:none;word-break:break-all}.file-link:hover{text-decoration:underline;color:var(--accent)}.kv-table{width:100%}.kv-table td{padding:12px 14px}.kv-table td:first-child{font-weight:800;color:var(--teal);width:35%}.danger-zone{border:2px dashed var(--red);border-radius:var(--radius);padding:18px;background:repeating-linear-gradient(45deg,#fdf6f4 0 14px,#fbeeea 14px 28px)}.danger-zone .panel-title{color:var(--red)}.danger-zone .hint{margin-top:8px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.team-card{background:var(--surface);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow);display:flex;gap:16px;align-items:flex-start;transition:transform .2s,box-shadow .2s}.team-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.team-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-size:var(--text-xl);flex-shrink:0}.team-name{font-weight:800;font-size:var(--text-base)}.team-stats{font-size:var(--text-sm);color:var(--ink-dim);margin-top:6px;line-height:1.7}.event-list{list-style:none}.event-list li{padding:12px 14px;border-bottom:1px dashed var(--line);font-size:var(--text-base);display:flex;align-items:center;gap:8px;transition:background .15s}.event-list li:hover{background:#fdf3ec}.event-list li:last-child{border-bottom:0}.event-list time{margin-inline-start:auto;font-size:var(--text-xs);direction:ltr}.event-actor{font-weight:800;color:var(--teal)}.empty-state{text-align:center;padding:3.5rem 1.5rem;color:var(--ink-dim);grid-column:1 / -1}.empty-ic{font-size:3rem;margin-bottom:12px;animation:float 3s ease-in-out infinite}.fm-breadcrumb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.fm-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--paper);border:2px solid var(--line);border-radius:var(--radius-lg);transition:all .15s;text-align:center}.fm-item:hover{border-color:var(--accent);background:#fdf3ec;transform:translateY(-2px)}.fm-ic{font-size:2rem;line-height:1}.fm-name{font-weight:800;font-size:var(--text-sm);word-break:break-all}.fm-sub{font-size:var(--text-xs)}.fm-files{display:flex;flex-direction:column;gap:8px}.fm-file-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;flex-wrap:wrap}.fm-file-row .fm-file-info{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}.reveal.in{opacity:1;transform:none}@keyframes pulse{0%{box-shadow:0 0 #2f7d4f80}70%{box-shadow:0 0 0 7px #2f7d4f00}to{box-shadow:0 0 #2f7d4f00}}@keyframes cardIn{0%{opacity:0;transform:translateY(22px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(10px)}}@keyframes shake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes btnPulse{0%,to{opacity:.65}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:900px){.topbar-inner{flex-wrap:wrap;padding:10px 14px;gap:10px;height:auto}.topnav{order:3;flex-basis:100%;margin-inline:-14px;padding-inline:10px}.me-box{display:none}.brand-name{font-size:var(--text-lg)}.brand-stamp{width:30px;height:30px}.display{font-size:var(--text-xl)}.page-head{flex-direction:column;align-items:stretch}.stat b{font-size:var(--text-2xl)}.app-grid{grid-template-columns:repeat(auto-fill,minmax(95px,1fr))}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.modal{width:min(92vw,640px)}#rf-modal .modal{width:min(94vw,860px)}}@media(max-width:640px){.topbar{z-index:20}.overlay,.sheet-overlay{z-index:500}.notif-panel{z-index:600}#toasts{z-index:700}.table-panel{overflow:visible}.table-wrap{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:70vh;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin}.table-wrap table{min-width:620px;width:max-content}.table-wrap::-webkit-scrollbar{height:6px}.table-wrap::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.table-panel th:first-child,.table-panel td:first-child{position:sticky;inset-inline-start:0;z-index:3;background:var(--surface);border-inline-end:2px solid var(--line);box-shadow:2px 0 4px #0000000a}.table-panel th:first-child{background:var(--paper);z-index:5}tbody tr:hover td:first-child{background:#fffaf5}.table-wrap th{-webkit-backdrop-filter:none;backdrop-filter:none}.table-wrap th{white-space:nowrap;vertical-align:middle}.table-wrap td{white-space:normal;word-break:break-word;vertical-align:middle;max-width:340px}.table-wrap td:first-child,.table-wrap td:last-child{white-space:nowrap}.table-wrap td .muted{white-space:normal}.container{padding:16px 14px calc(80px + env(safe-area-inset-bottom))}.display{font-size:1.55rem}.panel{padding:14px}.panel-title{font-size:.95rem}td,th{padding:10px 12px;font-size:.82rem}.field input,.field select,.field textarea,.search-input,#order-status-filter,.form-row-inline input,.rf-row input,.rf-row select{font-size:1rem}.btn:not(.btn-sm){min-height:46px}.modal-x{width:40px;height:40px}.login-tab{min-height:44px}.nav-link{padding:8px 10px;font-size:.8rem;flex-shrink:0}.user-chip{gap:10px;margin-inline-start:auto}.notif-panel{position:fixed;top:66px;inset-inline:12px;width:auto;max-height:60dvh}#kpi-strip{display:grid;grid-template-columns:1fr 1fr}.stat{padding:14px 16px}.stat+.stat{border-inline-start:0}.stat:nth-child(2n){border-inline-start:1px dashed var(--line)}.stat:nth-child(n+3){border-top:1px dashed var(--line)}.stat:last-child:nth-child(odd){grid-column:1 / -1;border-inline-start:0}.card-grid,.team-grid{grid-template-columns:1fr}.job-ticket-body{padding:16px 16px 12px}.job-ticket-actions{padding:12px 16px 16px}.job-ticket-actions .btn{min-height:48px}.stamp-done{font-size:.62rem;padding:2px 7px}.head-actions{width:100%}.search-input,#order-status-filter{flex:1;width:auto;min-width:0}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.device-card{width:100%;height:auto;min-height:110px}.device-picker-list{grid-template-columns:repeat(3,1fr)}.stage-title{min-width:120px}.stage-tasks{margin-inline-start:12px;padding-inline-start:12px}.overlay{padding:0}.overlay.open{place-items:end center}.modal{width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:92dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.modal-actions{bottom:calc(-18px - env(safe-area-inset-bottom));flex-wrap:wrap}.modal-actions .btn{flex:1 1 45%}.checklist{max-height:220px}.check-row{padding:12px}.sheet-overlay{align-items:flex-end;padding:0}.sheet{max-width:100%;border-radius:20px 20px 0 0;max-height:92dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));transform:translateY(100%) scale(1)}.sheet-overlay.active .sheet{transform:translateY(0) scale(1)}.sheet h3{font-size:1.3rem}.rf-head{display:none}#rf-list:before{content:"\c3\a2\cb\153\e2\20ac\2dc  \c3\161\e2\20ac\a0\c3\161\c2\a9\c3\a2\e2\201a\ac\c5\2019\c3\2dc\c2\a8\c3\2dc\c2\a7\c3\161\c2\a9\c3\2dc\c2\b3  \c3\2dc\c2\a7\c3\2122\cb\2020\c3\2122\e2\20ac\17e: \c3\2dc\c2\a7\c3\2122\e2\20ac\17e\c3\2dc\c2\b2\c3\2dc\c2\a7\c3\2122\e2\20ac\a6\c3\203a\c5\2019  \c3\201a\c2\b7  \c3\a2\cb\153\e2\20ac\2dc  \c3\161\e2\20ac\a0\c3\161\c2\a9\c3\a2\e2\201a\ac\c5\2019\c3\2dc\c2\a8\c3\2dc\c2\a7\c3\161\c2\a9\c3\2dc\c2\b3  \c3\2dc\c2\af\c3\2122\cb\2020\c3\2122\e2\20ac\a6: \c3\2122\c2\81\c3\2dc\c2\b9\c3\2dc\c2\a7\c3\2122\e2\20ac\17e  \c3\201a\c2\b7  \c3\a2\cb\153\e2\20ac\2dc  \c3\2dc\c2\b3\c3\2122\cb\2020\c3\2122\e2\20ac\a6: \c3\2dc\c2\a7\c3\2122\e2\20ac\a0\c3\2dc\c2\aa\c3\2122\e2\20ac\161\c3\2dc\c2\a7\c3\2122\e2\20ac\17e  \c3\2dc\c2\a8\c3\2122\e2\20ac\a1  \c3\161\c2\af\c3\2dc\c2\b2\c3\2dc\c2\a7\c3\2dc\c2\b1\c3\2dc\c2\b4";display:block;font-size:.7rem;color:var(--ink-dim);margin-bottom:8px}.rf-row{grid-template-columns:1fr 1fr 44px;grid-template-areas:"key   key   del" "label label del" "type  type  unit" "opts  opts  opts" "req   act   carry";border:1px dashed var(--line);border-radius:10px;padding:10px;background:#fbfaf7}.rf-row>:nth-child(1){grid-area:key}.rf-row>:nth-child(2){grid-area:label}.rf-row>:nth-child(3){grid-area:type}.rf-row>:nth-child(4){grid-area:opts}.rf-row>:nth-child(5){grid-area:unit}.rf-row>:nth-child(6){grid-area:req;justify-self:center}.rf-row>:nth-child(7){grid-area:act;justify-self:center}.rf-row>:nth-child(8):not(:last-child){grid-area:carry;justify-self:center}.rf-row>:nth-child(8):last-child,.rf-row>:nth-child(9){grid-area:del;align-self:start}.rf-row input[type=checkbox]{width:22px;height:22px}.rf-del{width:40px;height:40px}.report-kv{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.file-chip a{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-badge{font-size:.68rem}.form-row-inline{flex-direction:column;align-items:stretch}.form-row-inline .btn{width:100%}.event-list li{flex-wrap:wrap}.event-list time{flex-basis:100%;margin-inline-start:0}.fm-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.fm-item{padding:14px 8px}.fm-ic{font-size:1.6rem}.fm-file-row .row-actions{width:100%;justify-content:flex-end}.login-wrap{padding:16px}.login-card{padding:1.8rem 1.3rem}.login-head h1{font-size:2.1rem}.code-input{letter-spacing:8px;font-size:1.35rem!important}.taskbar{padding:6px 10px calc(6px + env(safe-area-inset-bottom));gap:4px}.tb-btn{padding:6px 12px;min-width:64px}.tb-home{min-width:60px;padding:5px 16px;margin-top:-14px}.app-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:10px}.app-tile{padding:16px 8px 12px}.app-ic{font-size:1.6rem}.app-label{font-size:.7rem}#toasts{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100% - 24px)}}@media(max-width:400px){.display{font-size:1.4rem}.stat b{font-size:1.6rem}.nav-link{font-size:.76rem;padding:7px 8px}.brand-name{font-size:1.1rem}.device-picker-list{grid-template-columns:repeat(2,1fr)}.rf-row{grid-template-columns:1fr 1fr 40px}.file-chip a{max-width:120px}.table-wrap table{min-width:540px}.table-wrap{max-height:65vh;border-radius:10px}.table-wrap td,.table-wrap th{padding:9px 10px;font-size:.78rem}.table-panel th:first-child,.table-panel td:first-child{box-shadow:2px 0 4px #0000000d}.fm-grid{grid-template-columns:repeat(2,1fr)}.job-ticket-head{flex-direction:column;gap:4px}.modal-actions .btn{flex:1 1 100%}}.sev-info{background:var(--blue-dim);color:var(--blue)}.sev-warning{background:#fdf1dc;color:#a05a00}.sev-error{background:var(--red-dim);color:var(--red)}.sev-critical{background:#3b0d18;color:#ffd7de}.rf-head{display:grid;grid-template-columns:90px 1fr 110px 1fr 70px 44px 44px 44px 44px 40px;gap:6px;font-size:var(--text-xs);color:var(--ink-dim);font-weight:700;margin-bottom:8px}.rf-row{display:grid;grid-template-columns:90px 1fr 110px 1fr 70px 44px 44px 44px 44px 40px;gap:6px;align-items:center;margin-bottom:8px;padding:6px 8px;border-radius:8px;transition:background .15s;animation:fadeUp .25s ease}input.spec-value{max-width:50%}.customer-search-box{position:relative}.customer-results{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:2px solid var(--accent);border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:250px;overflow-y:auto;z-index:100;box-shadow:var(--shadow-lg)}.customer-result-item{padding:10px 14px;cursor:pointer;transition:background .15s;display:flex;flex-direction:column;gap:2px}.customer-result-item:hover,.customer-result-item.selected{background:var(--accent-dim)}.customer-result-item strong{color:var(--ink)}.customer-result-item .muted{font-size:var(--text-xs)}.luna-chat-panel{display:flex;flex-direction:column}.luna-chat-messages{max-height:500px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.luna-message{padding:12px 16px;border-radius:12px;font-size:var(--text-sm);line-height:1.8;max-width:85%;white-space:pre-wrap}.luna-message.luna-system{background:var(--teal-dim);color:var(--teal);align-self:flex-start}.luna-message.luna-user{background:var(--ink);color:#fff;align-self:flex-end}.luna-message.luna-assistant{background:var(--paper);border:1px solid var(--line);align-self:flex-start}.luna-message.luna-loading{background:var(--paper);color:var(--ink-dim);align-self:flex-start;animation:pulse 1.5s infinite}.luna-message.luna-error{background:var(--red-dim);color:var(--red);align-self:flex-start}.luna-chat-input{display:flex;gap:10px;padding:16px;border-top:1px solid var(--line)}.luna-chat-input textarea{flex:1;min-height:48px;padding:12px 14px;border:2px solid var(--line);border-radius:var(--radius);resize:none;font-size:var(--text-base)}.luna-chat-input textarea:focus{outline:none;border-color:var(--accent)}.luna-chat-input .btn{align-self:flex-end}.luna-model-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px}.luna-model-row.active{border-color:var(--accent);background:var(--accent-dim)}.luna-model-name{font-weight:700;font-family:var(--font-mono)}.luna-model-provider{font-size:var(--text-xs);color:var(--ink-dim)}.topbar-inner{font-size:.95em}.task-manage-btns{display:flex;gap:4px}.stage-task-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin:4px 0;background:var(--paper);border-radius:var(--radius);border:1px solid var(--line)}.stage-tasks-list{min-height:20px;margin-top:8px}.spec-group{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;background:#fafbfc}.spec-group-title{font-weight:800;font-size:.85rem;color:var(--teal);margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed var(--line)}.spec-group-title small{color:var(--ink-dim);font-weight:400}.stage-manage-btns{display:flex;gap:4px;margin-inline-start:auto}.task-manage-btns{display:flex;gap:4px;flex-shrink:0}.stage-task-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin:4px 0;background:var(--surface);border-radius:var(--radius);border:1px solid var(--line)}.stage-task-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stage-tasks-list{min-height:24px;margin-top:8px}.stage-ghost{opacity:.4;background:var(--accent-dim)}.task-ghost{opacity:.4;background:var(--teal-dim)}.stage-chip{cursor:grab}.sev-info{background:var(--blue-soft);color:var(--primary)}.sev-warning{background:var(--gold-soft);color:var(--gold)}.sev-error{background:var(--danger-soft);color:var(--red)}.sev-critical{background:var(--red);color:#fff;font-weight:700}.luna-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.luna-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;border:1px solid var(--line);background:var(--surface);font-size:.78rem;cursor:pointer;transition:border-color .15s,background .15s}.luna-chip:hover{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,var(--surface))}.luna-chip-warn{border-color:var(--red);background:color-mix(in srgb,var(--red) 8%,var(--surface))}.luna-h{display:block;margin:10px 0 4px;color:var(--teal);font-size:.9rem;font-weight:800}.luna-li{display:block;padding-right:14px;line-height:1.8}.luna-message-text strong{color:var(--teal)}.report-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 14px}.report-fields-grid .field{margin-bottom:0}.report-fields-grid .field.full{grid-column:1 / -1}.job-ticket .task-specs{font-size:.78rem}.order-history{display:flex;flex-direction:column}.order-history .history-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:7px 4px;border-bottom:1px dashed var(--line);font-size:.82rem}.order-history .history-row:last-child{border-bottom:none}@media(max-width:560px){.report-fields-grid{grid-template-columns:1fr}}.order-general-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-start}.order-general-row .field.grow{flex:1;min-width:230px;margin-bottom:0}.field.field-sm select{min-width:120px;max-width:150px;min-height:46px;padding:0 10px;font-size:var(--text-sm)}.order-general-row .btn{margin-top:22px;white-space:nowrap}.stage-auto-title{flex:1;font-size:.82rem;font-weight:700;color:var(--teal)}.task-row-head{display:flex;gap:8px;align-items:center;margin-bottom:10px}.task-row-head .tr-type{flex:1;min-height:46px;font-weight:800;font-size:var(--text-md)}.of-fields-box{border:1px dashed var(--teal);border-radius:10px;padding:10px 12px;margin:8px 0;background:#177a7a0b}.of-fields-title{font-size:.78rem;font-weight:800;color:var(--teal);margin-bottom:8px}.task-row-inline{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;margin:8px 0}.task-row-inline input{min-height:42px;font-size:var(--text-sm)}.tr-qty-pair{display:flex;gap:6px;align-items:flex-end}.tr-qty-pair label,.tr-deadline-box label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--ink-dim);margin-bottom:4px}.tr-qty-pair input{width:130px;min-height:44px;padding:0 10px;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper)}.tr-qty-pair input.tr-qty-unit{width:110px}.tr-desc{flex:1;min-width:200px;min-height:44px;padding:0 12px;border:2px solid var(--line);border-radius:var(--radius);font-size:var(--text-base);background:var(--paper)}.tr-deadline-box{display:flex;flex-direction:column;gap:6px}.tr-jalali{display:flex;gap:6px}.tr-jalali select{min-height:42px;padding:0 8px;font-size:.8rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper)}.tr-jalali select.tr-jd{width:70px}.tr-jalali select.tr-jm{width:110px}.tr-jalali select.tr-jy{width:80px}.upload-box-sm{padding:8px 14px}.upload-box-sm .up-label{font-size:.8rem}@media(max-width:620px){.order-general-row{flex-direction:column;align-items:stretch}.order-general-row .field.field-sm select{max-width:100%}.task-row-inline{flex-direction:column;align-items:stretch}}#stages-list .stage-tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:10px}#stages-list .task-row{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin-bottom:0;border:2px solid var(--line);border-radius:12px;background:var(--paper)}.task-row:hover{border-color:var(--teal)}.task-row-top{display:flex;gap:6px;align-items:stretch;margin-bottom:8px}.task-row-top .tr-type{flex:1;min-height:48px;font-weight:800;font-size:1em;border:2px solid var(--teal);border-radius:10px;background:#177a7a0d;padding:0 10px}a.btn.btn-primary.btn-block{max-width:30%}.task-row-top .tr-type:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #177a7a26}.task-row-top .btn{min-height:46px;padding:0 12px}.mini-lbl{display:block;font-size:.72rem;font-weight:800;color:var(--ink-dim);margin:8px 0 3px}.qty-row{display:flex;gap:6px}.qty-row input{flex:1;min-height:40px;padding:0 10px;border:2px solid var(--line);border-radius:8px;font-size:var(--text-sm);background:var(--paper);min-width:0}.task-row input.tr-desc{width:100%;min-height:40px;margin-bottom:8px;padding:0 10px;border:2px solid var(--line);border-radius:8px;font-size:var(--text-sm);background:var(--paper)}.tr-deadline-box{margin-bottom:8px}.tr-deadline-box .check-field{font-size:.8rem;font-weight:700}.tr-jalali{display:flex;gap:5px;margin-top:5px}.tr-jalali select{flex:1;min-width:0;min-height:38px;padding:0 6px;font-size:.78rem;border:2px solid var(--line);border-radius:8px;background:var(--paper)}.remove-task-row{min-width:38px}.of-fields-box .field{margin-bottom:0}.of-fields-box .field label{font-size:.75rem;margin-bottom:3px}.of-fields-box .field input,.of-fields-box .field select{min-height:38px;padding:0 8px;font-size:.8rem}.job-ticket-actions{flex-direction:column;flex-wrap:wrap}.job-ticket-actions .btn{width:100%}#dash-devices.devices-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;justify-items:stretch}#dash-devices .device-card{width:100%;min-height:86px;height:auto;padding:8px 6px;gap:2px}#dash-devices .device-icon{font-size:1.25rem}#dash-devices .device-name{font-size:.72rem;font-weight:700;line-height:1.3}#dash-devices .device-status{font-size:.66rem}#stage-track .stage-manage-btns,#stage-track .task-manage-btns,#add-stage-to-order{display:none!important}#stage-track.edit-on .stage-manage-btns,#stage-track.edit-on .task-manage-btns{display:flex!important}#stage-track.edit-on~#add-stage-to-order{display:inline-flex!important}.feedback-fab{position:fixed;bottom:78px;inset-inline-start:14px;z-index:60;width:60px;height:60px;font-size:24px;border-radius:50%;border:none;background:var(--teal);color:#fff;font-size:1.15rem;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .15s,box-shadow .15s}.feedback-fab:hover{transform:scale(1.08)}.modal-lg{width:min(880px,100%)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.spec-row{display:grid;grid-template-columns:1.2fr 1fr .6fr 34px;gap:8px;margin-bottom:8px}.spec-del{border:none;background:var(--red-dim);color:var(--red);border-radius:8px;font-size:1rem;cursor:pointer}.spec-del:hover{background:var(--red);color:#fff}.pd-tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:16px;flex-shrink:0}.pd-tab{border:none;background:transparent;padding:10px 14px;font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-dim);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.pd-tab:hover{color:var(--ink)}.pd-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.pd-summary{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px}.pd-thumb{width:132px;height:132px;border-radius:var(--radius);border:1px solid var(--line);object-fit:cover;flex-shrink:0;background:var(--paper)}.pd-thumb-empty{display:flex;align-items:center;justify-content:center;font-size:3rem}.pd-summary-info{flex:1;min-width:0}.kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.report-kv .kv,.kv-grid .kv{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--paper);border-radius:8px;font-size:var(--text-sm)}.report-kv .kv b,.kv-grid .kv b{color:var(--ink-dim);font-weight:500;flex-shrink:0}.pd-desc{margin-top:10px;font-size:var(--text-sm);color:var(--ink-dim);background:var(--paper);border-radius:8px;padding:10px 12px}.pd-stats{margin-bottom:18px}.pd-sec-title{font-size:var(--text-base);margin:6px 0 10px}.pd-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.doc-list{display:flex;flex-direction:column;gap:10px}.doc-card{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--surface);transition:box-shadow .15s}.doc-card:hover{box-shadow:var(--shadow)}.doc-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.doc-ic{font-size:1.6rem;flex-shrink:0}.doc-info{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.doc-file{font-size:var(--text-xs)}.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.ver-list{display:flex;flex-direction:column;gap:8px}.ver-row{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius)}.ver-row.current{border-color:var(--green);background:var(--green-dim)}.ver-badge{font-family:var(--font-mono);font-weight:700;background:var(--paper);padding:4px 8px;border-radius:6px;flex-shrink:0;font-size:var(--text-xs)}.ver-row.current .ver-badge{background:var(--green);color:#fff}.ver-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.ver-file a{color:var(--ink)}.tl-list{display:flex;flex-direction:column}.tl-item{display:flex;gap:12px;position:relative;padding-bottom:14px}.tl-item:not(:last-child):before{content:"";position:absolute;top:18px;inset-inline-start:7px;bottom:0;width:2px;background:var(--line)}.tl-dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--line);background:var(--surface);flex-shrink:0;margin-top:3px;z-index:1}.tl-dot.done{border-color:var(--green);background:var(--green)}.tl-body{flex:1;min-width:0}.tl-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--text-sm)}.tl-sub{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--text-xs);margin-top:3px}.empty-state{text-align:center;padding:28px 10px}.pager{display:flex;gap:12px;align-items:center;justify-content:center;padding:12px 0 4px}.tr-product-box{position:relative;margin:6px 0}.tr-product-search{width:100%;min-height:40px;padding:0 10px;border:2px solid var(--line);border-radius:8px;font-size:var(--text-sm);background:var(--paper)}.tr-product-results{position:absolute;top:calc(100% + 4px);inset-inline:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:20;max-height:240px;overflow:auto}.pp-stage{border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:10px;background:var(--surface)}.pp-stage-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pp-task{display:flex;gap:14px;flex-wrap:wrap;padding:6px 10px;border-top:1px dashed var(--line);font-size:var(--text-sm)}.pp-task:first-of-type{border-top:none}.pp-edit-stage{border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:12px}.pp-edit-stage-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.pp-edit-stage-head .pp-stage-title{flex:1}.pp-edit-task{display:grid;grid-template-columns:1.2fr 1.6fr .7fr 34px;gap:8px;margin-bottom:8px;align-items:center}.text-danger{color:var(--red)}input#mytasks-search,input#pool-search{width:100%;min-height:48px;padding:0 14px;border:2px solid var(--line);border-radius:var(--radius);font-size:var(--text-base);background:var(--paper);transition:border-color .2s,box-shadow .2s,background .2s}select#mytasks-sort,select#pool-sort{width:5%;min-height:48px;padding:0 14px;border:2px solid var(--line);border-radius:var(--radius);font-size:var(--text-base);background:var(--paper);transition:border-color .2s,box-shadow .2s,background .2s}
