@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{color:#22304a;font-synthesis:none;text-rendering:optimizelegibility;--blue:#1d63e3;--blue-dark:#1550c4;--blue-soft:#eef4ff;--green:#8cc63f;--line:#e2e8f2;--muted:#64748f;--text:#22304a;--danger:#c03535;--card-shadow:0 1px 2px #0f285a0d;--menu-shadow:0 12px 30px #0f285a24;--radius:10px;--topbar-h:56px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);background:#f2f5fa;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}:focus-visible{outline:2px solid var(--blue)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted);font-weight:400}.sidebar::-webkit-scrollbar{width:8px}.dialog-body::-webkit-scrollbar{width:8px}.perm-matrix::-webkit-scrollbar{width:8px}.check-list::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#d3dcea;border-radius:8px}.dialog-body::-webkit-scrollbar-thumb{background:#d3dcea;border-radius:8px}.perm-matrix::-webkit-scrollbar-thumb{background:#d3dcea;border-radius:8px}.check-list::-webkit-scrollbar-thumb{background:#d3dcea;border-radius:8px}.page-loader{min-height:46vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:13px;font-size:.88rem;display:flex}.page-loader span{border:3px solid #d7e4fb;border-top-color:var(--blue);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.no-access-panel{text-align:center;max-width:540px;margin:8vh auto;padding:34px}.no-access-panel h1{font-size:1.3rem}.no-access-panel p:last-child{color:var(--muted);margin-bottom:0}.not-found{text-align:center;place-content:center;gap:8px;min-height:100dvh;display:grid}.not-found span{color:var(--blue);font-size:3rem;font-weight:800}.not-found a{color:var(--blue);font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{flex-direction:column;height:100dvh;display:flex}.app-body{flex:1;min-height:0;display:flex}.topbar{color:#fff;z-index:20;background:linear-gradient(120deg,#1a55cf 0%,#2577ee 60%,#2e87f5 100%);flex:none;justify-content:space-between;align-items:center;height:56px;padding:0 18px;display:flex;box-shadow:0 1px 4px #0a1e5040}.topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{width:33px;height:33px;color:var(--blue);background:#fff;border-radius:9px;flex:none;place-items:center;font-size:1.25rem;font-weight:800;line-height:1;display:grid}.brand-name{color:#fff;letter-spacing:-.01em;white-space:nowrap;font-size:1.22rem;font-weight:600}.brand-name b{color:#a8dd55;font-weight:800}.brand-section{white-space:nowrap;border-left:1px solid #ffffff59;margin-left:12px;padding-left:14px;font-size:.95rem;font-weight:500}.topbar-user{position:relative}.user-trigger{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:5px 8px;font-size:.9rem;font-weight:600;display:flex}.user-trigger:hover{background:#ffffff24}.user-avatar{color:#fff;background:#ffffff38;border-radius:50%;place-items:center;width:30px;height:30px;font-size:.78rem;font-weight:700;display:grid}.user-chevron{opacity:.8}.user-menu{z-index:60;border:1px solid var(--line);min-width:230px;box-shadow:var(--menu-shadow);color:var(--text);background:#fff;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-menu-head{border-bottom:1px solid var(--line);flex-direction:column;gap:1px;margin-bottom:4px;padding:9px 10px;display:flex}.user-menu-head strong{font-size:.9rem}.user-menu-head small{color:var(--muted);font-size:.78rem}.user-menu button,.menu button{color:#33415c;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;width:100%;padding:8px 10px;font-size:.86rem;font-weight:500;display:flex}.user-menu button:hover,.menu button:hover{background:#f0f5ff}.menu-danger{color:var(--danger)!important}.menu-danger:hover{background:#fdeeee!important}.logout-error{z-index:60;color:#a92f2f;background:#fdeeee;border:1px solid #f5c6c6;border-radius:10px;width:240px;padding:10px 12px;font-size:.82rem;position:absolute;top:calc(100% + 8px);right:0}.sidebar{border-right:1px solid var(--line);background:#fff;flex:none;width:234px;padding:14px 11px;overflow-y:auto}.main-nav{flex-direction:column;gap:3px;display:flex}.nav-item{color:#3d4c63;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;width:100%;height:42px;padding:0 12px;font-size:.9rem;font-weight:500;transition:background .14s,color .14s;display:flex}.nav-item svg{color:#62748e;flex:none;transition:color .14s}.nav-item:hover{background:var(--blue-soft);color:var(--blue)}.nav-item:hover svg{color:var(--blue)}.nav-item[data-active=true],.nav-item[data-active=true] svg{background:var(--blue);color:#fff}.nav-item[data-active=true]{font-weight:600;box-shadow:0 4px 10px #1d63e34d}.nav-group-toggle .group-chevron{margin-left:auto;transition:transform .18s}.nav-group-toggle .group-chevron.open{transform:rotate(180deg)}.nav-group.group-active>.nav-group-toggle,.nav-group.group-active>.nav-group-toggle svg{color:var(--blue)}.nav-children{flex-direction:column;gap:2px;margin:2px 0 4px;padding-left:14px;display:flex}.nav-children[hidden]{display:none}.nav-children .nav-item{height:38px;font-size:.88rem}.main-content{flex:1;min-width:0;padding:24px 28px 40px;overflow-y:auto}.nav-toggle{display:none}.security-notice{border-radius:var(--radius);color:#7c5a10;background:#fff7e0;border:1px solid #f0dfae;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:10px 14px;font-size:.87rem;display:flex}.security-notice button{color:#fff;cursor:pointer;background:#8a6d1a;border:none;border-radius:7px;flex:none;padding:6px 12px;font-size:.82rem;font-weight:600}.page{max-width:1240px;margin:0 auto}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.breadcrumb{color:var(--muted);text-transform:capitalize;margin-bottom:3px;font-size:.8rem;font-weight:500}.page-header h1{letter-spacing:-.01em;margin-bottom:5px;font-size:1.5rem;font-weight:700}.page-lead{color:var(--muted);margin-bottom:0;font-size:.9rem}.section-title{margin:24px 0 12px;font-size:1rem;font-weight:700}.card{border:1px solid var(--line);box-shadow:var(--card-shadow);background:#fff;border-radius:12px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.stat-card{align-items:center;gap:15px;padding:18px;display:flex}.stat-card strong{letter-spacing:-.02em;font-size:1.45rem;font-weight:800;line-height:1.15;display:block}.stat-card strong+span{font-size:.88rem;font-weight:600}.stat-card small{color:var(--muted);margin-top:2px;font-size:.77rem;display:block}.stat-icon{border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}.tone-blue{color:#1d63e3;background:#e3edff}.tone-green{color:#2f9e4f;background:#e5f6e9}.tone-purple{color:#7b4fd6;background:#f0e8fd}.tone-orange{color:#e8890c;background:#fdeed7}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 15px;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 2px 6px #1d63e347}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-ghost{border-color:var(--line);color:#33415c;background:#fff}.btn-ghost:hover:not(:disabled){background:#f2f6fd;border-color:#c6d4e8}.btn-danger{color:#fff;background:#d23b3b}.btn-danger:hover:not(:disabled){background:#b32f2f}.btn-danger-text{color:var(--danger);border-color:#0000}.btn-danger-text:hover:not(:disabled){background:#fdeeee;border-color:#0000}.btn-block{width:100%;height:42px}.btn-tiny{white-space:nowrap;height:26px;padding:0 10px;font-size:.78rem}.icon-button{color:#5b6b84;cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;width:32px;height:32px;padding:0;display:grid}.icon-button:hover{background:var(--blue-soft);color:var(--blue)}.segmented{background:#f3f6fb;border:1px solid #d8e0ec;border-radius:10px;margin-bottom:16px;padding:4px;display:inline-flex}.segmented-button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 18px;font-size:.88rem;font-weight:600;transition:background .15s,color .15s}.segmented-button:hover{color:var(--text)}.segmented-button.active{color:var(--text);background:#fff;box-shadow:0 1px 3px #1e293b1f}.asset-action{border:1px solid var(--border,#d8dee6);background:var(--surface,#fff);width:24px;height:24px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid}.asset-action:hover,.asset-action:focus-visible{background:var(--bg-alt,#f2f5f9);color:var(--text)}.asset-action-danger:hover,.asset-action-danger:focus-visible{color:#fff;background:var(--danger,#b42318);border-color:var(--danger,#b42318)}.asset-action:disabled{opacity:.5;cursor:default}.field{color:#33415c;border:none;flex-direction:column;gap:6px;margin:0;padding:0;font-size:.85rem;font-weight:600;display:flex}.input,.field input,.field select,.field textarea{width:100%;height:40px;color:var(--text);background:#fff;border:1px solid #ccd6e4;border-radius:8px;padding:0 12px;font-family:inherit;font-size:.9rem;font-weight:400}textarea.input,.field textarea{resize:vertical;height:auto;min-height:72px;padding:9px 12px;line-height:1.45}.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #1d63e321}.input:disabled,.field input:disabled,.field select:disabled,.field textarea:disabled{color:var(--muted);cursor:not-allowed;background:#f4f6fa}.input-sm{width:90px}.stepper-input{width:100%;display:flex;position:relative}.stepper-input .input{flex:auto;width:auto;min-width:0;padding-right:26px}.stepper-input-controls{border-left:1px solid #ccd6e4;border-radius:0 7px 7px 0;flex-direction:column;display:flex;position:absolute;top:1px;bottom:1px;right:1px;overflow:hidden}.stepper-input-controls button{color:var(--muted);cursor:pointer;background:#f8faff;border:none;flex:1;place-items:center;padding:0 6px;line-height:0;display:grid}.stepper-input-controls button:first-child{border-bottom:1px solid #eef2f8}.stepper-input-controls button:hover:not(:disabled){color:var(--blue);background:#eaf1ff}.stepper-input-controls button:disabled{cursor:not-allowed;opacity:.5}.field small{color:var(--muted);font-size:.76rem;font-weight:400}.field-label{display:block}.field-required{color:var(--danger);font-weight:700}.field-hint{display:block}.input[aria-invalid=true],.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true],.entity-search-input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px #c0353521}.input[aria-invalid=true]:focus,.field input[aria-invalid=true]:focus,.field select[aria-invalid=true]:focus,.field textarea[aria-invalid=true]:focus,.entity-search-input[aria-invalid=true]:focus{border-color:var(--danger);outline:none;box-shadow:0 0 0 3px #c0353533}.field legend{margin-bottom:8px;padding:0;font-size:.85rem;font-weight:600}.field-error{color:var(--danger)!important}.field-inline{gap:8px;display:flex}.field-inline input{flex:1;min-width:0}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field input[type=range]{appearance:none;cursor:pointer;background:0 0;border:none;width:calc(100% - 20px);height:26px;margin-left:10px;padding:0}.field input[type=range]:focus{outline:none}.field input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #1d63e32e,0 1px 3px #0f285a4d}.field input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #1d63e32e,0 1px 3px #0f285a4d}.field input[type=range]::-webkit-slider-runnable-track{background:#e2e8f2;border-radius:999px;height:6px}.field input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--blue);border:3px solid #fff;border-radius:50%;width:18px;height:18px;margin-top:-6px;transition:transform .12s;box-shadow:0 1px 3px #0f285a4d}.field input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.1)}.field input[type=range]::-moz-range-track{background:#e2e8f2;border-radius:999px;height:6px}.field input[type=range]::-moz-range-progress{background:var(--blue);border-radius:999px;height:6px}.field input[type=range]::-moz-range-thumb{background:var(--blue);border:3px solid #fff;border-radius:50%;width:18px;height:18px;transition:transform .12s;box-shadow:0 1px 3px #0f285a4d}.field input[type=range]:hover::-moz-range-thumb{transform:scale(1.1)}.form-error{color:#a92f2f;background:#fdeeee;border:1px solid #f5c6c6;border-radius:8px;padding:10px 12px;font-size:.85rem}.form-help{color:var(--muted);margin-bottom:0;font-size:.9rem}.check-list{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;max-height:220px;padding:8px;display:flex;overflow-y:auto}.check-item{cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:7px 10px;font-weight:500;display:flex}.check-item:hover{background:#f4f8ff}.check-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue);flex:none;margin:2px 0 0}.check-item>span{flex-direction:column;gap:1px;display:flex}.check-item small{color:var(--muted);font-size:.76rem;font-weight:400}.entity-search{width:100%;position:relative}.entity-search-icon{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.entity-search-input{width:100%;height:40px;color:var(--text);background:#fff;border:1px solid #ccd6e4;border-radius:8px;padding:0 34px 0 12px;font-family:inherit;font-size:.9rem}.entity-search-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #1d63e321}.entity-search-input:disabled{color:var(--muted);cursor:not-allowed;background:#f4f6fa}.entity-search-results{z-index:1000;border:1px solid var(--line);max-height:260px;box-shadow:var(--menu-shadow);background:#fff;border-radius:8px;margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto}.entity-search-option{min-height:40px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:9px 12px;font-size:.88rem;line-height:1.3}.entity-search-option--active{background:var(--blue-soft)}.entity-search-option-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.entity-search-selected{font-weight:600}.entity-search-empty{color:var(--muted);padding:9px 12px;font-size:.85rem;font-style:italic}.entity-search-overflow{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-style:normal}@media (width<=480px){.entity-search-results{max-height:220px}}.multi-select{width:100%;position:relative}.multi-select-control{cursor:text;background:#fff;border:1px solid #ccd6e4;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;padding:4px 8px;display:flex}.multi-select-control:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #1d63e321}.multi-select-chip{background:var(--blue-soft);color:var(--blue-dark);border-radius:6px;align-items:center;gap:5px;padding:3px 6px 3px 9px;font-size:.8rem;font-weight:600;line-height:1.2;display:inline-flex}.multi-select-chip-remove{color:var(--blue-dark);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;padding:1px;display:grid}.multi-select-chip-remove:hover{background:#1d63e326}.multi-select-input-wrap{min-width:90px;color:var(--muted);flex:1;align-items:center;gap:6px;display:inline-flex}.multi-select-input{min-width:60px;height:28px;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.88rem}.multi-select-results{z-index:1000;border:1px solid var(--line);max-height:260px;box-shadow:var(--menu-shadow);background:#fff;border-radius:8px;margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto}.multi-select-option{min-height:38px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:9px;padding:8px 12px;font-size:.88rem;line-height:1.3;display:flex}.multi-select-option--active{background:var(--blue-soft)}.multi-select-option--selected{font-weight:600}.multi-select-check{background:#fff;border:1.5px solid #b9c4d6;border-radius:4px;flex:none;width:16px;height:16px}.multi-select-check--on{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 2.5px #fff}.multi-select-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.multi-select-swatch{border-radius:4px;flex:none;width:12px;height:12px}.multi-select-chip-swatch{border-radius:3px;flex:none;width:10px;height:10px}.multi-select-empty{color:var(--muted);padding:9px 12px;font-size:.85rem;font-style:italic}.multi-select-overflow{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-style:normal}@media (width<=480px){.multi-select-results{max-height:220px}}.dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f1e3c73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:480px;max-height:calc(100dvh - 40px);animation:.16s ease-out dialog-in;display:flex;box-shadow:0 24px 60px #0a193c4d}.dialog:focus{outline:none}.dialog-wide{max-width:780px}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}.dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 0;display:flex}.dialog-head h2{margin-bottom:0;font-size:1.12rem;font-weight:700}.dialog-head p{color:var(--muted);margin:5px 0 0;font-size:.84rem;line-height:1.45}.dialog-close{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:none;place-items:center;display:grid}.dialog-close:hover{color:var(--text);background:#f0f4fa}.dialog-body{padding:15px 20px 20px;overflow-y:auto}.dialog-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.dialog-form{flex-direction:column;gap:14px;display:flex}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.confirm-message{align-items:flex-start;gap:12px;font-size:.92rem;line-height:1.5;display:flex}.confirm-icon{width:40px;height:40px;color:var(--danger);background:#fdeeee;border-radius:50%;flex:none;place-items:center;display:grid}.confirm-message+.form-error{margin-top:12px}.lightbox-backdrop{z-index:120;background:#0f172ad1;place-items:center;padding:24px;animation:.15s lightbox-fade;display:grid;position:fixed;inset:0}@keyframes lightbox-fade{0%{opacity:0}}.lightbox-figure{flex-direction:column;align-items:center;gap:10px;max-width:100%;margin:0;display:flex;position:relative}.lightbox-image{object-fit:contain;border-radius:10px;max-width:min(1100px,92vw);max-height:78dvh;box-shadow:0 24px 64px #00000073}.lightbox-caption{color:#ffffffd9;text-align:center;max-width:92vw;font-size:.85rem}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:-46px;right:0}.lightbox-close:hover,.lightbox-close:focus-visible{background:#ffffff40}@media (width<=767px){.lightbox-backdrop{padding:12px}.lightbox-image{max-width:96vw;max-height:74dvh}.lightbox-close{width:40px;height:40px;top:-48px;right:-2px}}.card-list{overflow:hidden}.card-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.search-box{border:1px solid var(--line);min-width:280px;height:38px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex;position:relative}.search-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #1d63e31f}.search-box input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:.88rem}.search-clear{color:#52617a;cursor:pointer;background:#e3e9f3;border:none;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;padding:0;line-height:0;display:grid}.search-clear svg{display:block}.search-clear:hover{color:#1f2a3d;background:#d4dbea}.count-chip{color:var(--muted);background:#f0f4fa;border-radius:999px;flex:none;padding:4px 12px;font-size:.79rem;font-weight:600}.table{border-collapse:collapse;width:100%}.table th{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;background:#fafbfe;padding:11px 16px;font-size:.72rem;font-weight:700}.table td{vertical-align:middle;border-bottom:1px solid #eef2f8;padding:12px 16px;font-size:.89rem}.table tbody tr:hover{background:#f8faff}.table tbody tr:last-child td{border-bottom:none}.table-empty{color:var(--muted);text-align:center;padding:34px 16px!important}.col-actions{width:64px;text-align:right!important}.cell-note{color:var(--muted);font-size:.78rem;display:block}.quantity-cell{align-items:center;gap:6px;display:flex}.quantity-cell .cell-note{flex:none}.price-cell-value{font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;height:40px;display:flex}.person-cell{align-items:center;gap:11px;display:flex}.person-cell strong{font-weight:600;display:block}.person-cell small{color:var(--muted);font-size:.79rem}.small-avatar{width:34px;height:34px;color:var(--blue);background:#e4edff;border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:700;display:grid}.chip-list{flex-wrap:wrap;gap:6px;display:flex}.chip{color:#2b5bbf;background:#eef4ff;border-radius:6px;padding:3px 9px;font-size:.78rem;font-weight:600}.badge{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.badge-system,.badge-custom{font-size:.74rem}.badge-system:before,.badge-custom:before{display:none}.status-active{color:#177a3d;background:#e6f7ec}.status-inactive{color:#5d6b7f;background:#eef1f6}.status-blocked,.status-do-not-contact{color:#c03535;background:#fdeaea}.badge-system{color:#9a6b12;background:#fff4db}.badge-custom{color:#2b5bbf;background:#e9f2ff}.badge.priority-p1{color:#5d6b7f;background:#eef1f6}.badge.priority-p2{color:#1d7fa0;background:#e6f4fa}.badge.priority-p3{color:#9a6b12;background:#fff4db}.badge.priority-p4{color:#b95a0c;background:#fdeede}.badge.priority-p5{color:#c03535;background:#fdeaea}.cell-note{color:#b07908;margin-top:3px;font-size:.74rem;display:block}.row-actions{display:inline-block;position:relative}.protected-mark{color:#9aa9bd;place-items:center;width:32px;height:32px;display:inline-grid}.menu{z-index:40;border:1px solid var(--line);min-width:205px;box-shadow:var(--menu-shadow);background:#fff;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-portal{z-index:100;width:220px;position:fixed}.table tr.row-clickable{cursor:pointer}.table tr.row-clickable:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.table tr.row-clickable:hover{background:#f8faff}.customers-toolbar{flex-wrap:wrap}.table-premium{table-layout:auto}.table-premium thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--line);vertical-align:middle;background:#f4f7fc;padding:8px 16px;position:sticky;top:0}.table-premium thead th:after{background:var(--line);content:"";height:1px;position:absolute;bottom:-1px;left:0;right:0}.table-premium th.col-type,.table-premium th.col-status,.table-premium th.col-priority{width:180px}.th-combo{justify-content:space-between;align-items:center;gap:6px;display:flex}.th-sort{color:inherit;font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:4px 6px;font-weight:700;transition:color .12s;display:inline-flex}.th-sort:hover,.th-sort-active{color:var(--blue)}.th-sort-icon{width:14px;display:inline-flex}.th-filter{justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.th-filter-compact{justify-content:flex-end}.th-filter-trigger{color:#9aa6ba;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;width:22px;height:22px;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-grid}.th-filter-trigger:hover{color:var(--blue);background:#e7eefb}.th-filter-active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.th-filter-menu{z-index:100;min-width:195px;max-width:calc(100vw - 16px);max-height:min(320px,100vh - 16px);position:fixed;right:auto;overflow-y:auto}.menu-option{color:#33415c;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:7px 9px;font-size:.84rem;font-weight:500;display:flex}.menu-option:hover{background:#f0f5ff}.menu-option-current{color:var(--blue);font-weight:600}.menu-option-current svg{color:var(--blue)}.num-cell{font-variant-numeric:tabular-nums;color:#2c3a55;font-family:Inter,system-ui,sans-serif;font-weight:700}.chip-type{border-radius:999px;align-items:center;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.type-domestic{color:#2b5bbf;background:#eef4ff}.type-industrial{color:#b6610a;background:#fef3e7}.table-pagination{border-top:1px solid var(--line);color:var(--muted);background:#fbfcfe;justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;font-size:.85rem;display:flex}.pagination-info{align-items:center;gap:14px;display:flex}.page-size{color:var(--muted);align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.page-size select{height:30px;color:var(--text);background:#fff;border:1px solid #ccd6e4;border-radius:6px;padding:0 8px;font-size:.82rem}.pagination-controls{align-items:center;gap:12px;display:flex}.pagination-pages strong{color:var(--text);font-weight:700}.pagination-buttons{gap:2px;display:inline-flex}.pagination-buttons .icon-button{border-radius:6px;width:30px;height:30px}.pagination-buttons .icon-button:disabled{opacity:.4;cursor:not-allowed}.link-source{color:var(--blue);font-weight:500}.link-source:hover{color:var(--blue-dark);text-decoration:underline}.filter-chips{border-bottom:1px solid var(--line);background:#fbfcfe;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px 14px;display:flex}.filter-chip{color:var(--text);background:#fff;border:1px solid #cdd8ec;border-radius:999px;align-items:center;gap:6px;padding:4px 4px 4px 10px;font-size:.8rem;display:inline-flex;box-shadow:0 1px 2px #0f285a0a}.filter-chip-label{align-items:baseline;gap:6px;display:inline-flex}.filter-chip-name{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:600}.filter-chip-value{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-weight:600;overflow:hidden}.filter-chip-remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:#eef2f8;border:none;border-radius:50%;flex:none;place-items:center;padding:0;line-height:0;display:grid}.filter-chip-remove svg{display:block}.filter-chip-remove:hover{background:var(--blue);color:#fff}@media (width<=620px){.filter-chips{padding:10px 12px 12px}}@media (width<=767px){.topbar{height:var(--topbar-h);padding-left:max(12px, var(--safe-left));padding-right:max(12px, var(--safe-right));padding-top:var(--safe-top)}.brand-name{font-size:1.05rem}.brand-section,.user-name{display:none}.nav-toggle{color:#fff;cursor:pointer;background:#ffffff24;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.sidebar{z-index:80;width:280px;height:100dvh;padding:calc(var(--topbar-h) + var(--safe-top) + 8px) 11px calc(12px + var(--safe-bottom));border-right:1px solid var(--line);box-shadow:var(--menu-shadow);background:#fff;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar[data-open=true]{transform:translate(0)}.main-nav{gap:4px}.nav-item{height:48px;font-size:.95rem}.nav-children .nav-item{height:44px}.nav-backdrop{z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1e3c73;animation:.18s ease-out fade-in;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.main-content{padding:16px max(14px, var(--safe-left)) calc(40px + var(--safe-bottom));padding-right:max(14px, var(--safe-right))}.page{max-width:100%}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header .btn{justify-content:center;align-self:stretch}.page-header h1{font-size:1.3rem}.btn{min-height:44px}.icon-button{width:44px;height:44px}.field input,.field select,.field textarea{min-height:44px}.stat-grid{grid-template-columns:1fr}.dialog-backdrop{padding:0}.dialog{border-radius:0;max-width:100%;height:100dvh;max-height:100dvh}.dialog-wide{max-width:100%}.dialog-head{padding-top:max(14px, var(--safe-top))}.dialog-foot{padding-bottom:max(14px, var(--safe-bottom))}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{min-width:640px}.table-premium{min-width:720px}.card-toolbar{flex-direction:column;align-items:stretch;gap:10px}.search-box{min-width:0;height:44px}.table-pagination{flex-direction:column;align-items:stretch;gap:10px}.pagination-info,.pagination-controls{justify-content:space-between}.pagination-buttons .icon-button{width:44px;height:44px}.detail-grid,.field-grid{grid-template-columns:1fr}.detail-header-actions{flex-wrap:wrap;align-self:stretch}.equipment-item{flex-direction:column}.equipment-item-actions{justify-content:flex-end;width:100%}}@media (width>=768px) and (width<=1023px){.sidebar{width:200px}.page{max-width:100%}.main-content{padding:20px 20px 40px}.table-wrap{overflow-x:auto}.table-premium{min-width:720px}.table-premium thead th{position:relative}.table-pagination{flex-wrap:wrap;justify-content:space-between}}@media (hover:none) and (pointer:coarse){.btn,.nav-item{min-height:44px}.th-filter-trigger{width:32px;height:32px}}.dashboard-header-actions{flex-wrap:wrap;gap:10px;display:flex}.dashboard-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;margin:30px 0 14px;display:flex}.dashboard-section-head .section-title{margin:0 0 3px}.dashboard-section-head p{color:var(--muted);margin:0;font-size:.82rem}.dashboard-economy{grid-template-columns:minmax(0,1fr);gap:16px;transition:opacity .15s;display:grid}.dashboard-economy-stale{opacity:.6}.dashboard-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dashboard-filters .segmented{margin-bottom:0}.dashboard-filter{flex-direction:row;align-items:center;gap:8px;font-size:.82rem}.dashboard-filter select,.dashboard-filter input{width:auto;height:36px}.dashboard-swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.dashboard-swatch-domestic{background:var(--blue)}.dashboard-swatch-industrial{background:var(--green)}.dashboard-swatch-appointments{background:#7b4fd6}.dashboard-swatch-notes{background:#0e8a7e}.dashboard-legend{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.dashboard-legend li{align-items:center;gap:6px;display:flex}.dashboard-attention{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;display:grid}.dashboard-attention-tile{align-items:center;gap:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}a.dashboard-attention-tile:hover,a.dashboard-admin-tile:hover{border-color:#b9cffb;transform:translateY(-1px);box-shadow:0 8px 20px #0f285a1a}.dashboard-attention-icon{border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.dashboard-attention-body{flex-direction:column;flex:1;min-width:0;display:flex}.dashboard-attention-body strong{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800;line-height:1.15}.dashboard-attention-body span{font-size:.84rem;font-weight:600}.dashboard-attention-body small{color:var(--muted);font-size:.74rem}.dashboard-attention-clear strong{color:#9aa6b8}.dashboard-attention-clear small{color:#3d7a16}.dashboard-attention-arrow{color:#9aa6b8;flex:none;transition:color .15s}a.dashboard-attention-tile:hover .dashboard-attention-arrow{color:var(--blue)}.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px;display:grid}.dashboard-kpi{flex-direction:column;gap:10px;padding:18px 20px;display:flex}.dashboard-kpi-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.dashboard-kpi-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:700}.dashboard-kpi-period{color:var(--muted);white-space:nowrap;background:#f3f6fb;border-radius:999px;padding:2px 9px;font-size:.74rem;font-weight:600}.dashboard-kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:800;line-height:1.1}.dashboard-kpi-note{color:var(--muted);margin-top:auto;font-size:.75rem;line-height:1.4}.dashboard-delta,.dashboard-kpi-alert,.dashboard-kpi-ok{font-variant-numeric:tabular-nums;border-radius:999px;align-items:baseline;gap:6px;width:fit-content;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.dashboard-delta small{color:var(--muted);font-size:.72rem;font-weight:500}.dashboard-delta-up,.dashboard-kpi-ok{color:#3d7a16;background:#ecf8e4}.dashboard-delta-down{color:var(--danger);background:#fdeaea}.dashboard-delta-flat{color:#5d6b7f;background:#eef1f6;font-weight:600}.dashboard-kpi-alert{color:#b6610a;background:#fef3e7}.dashboard-split{flex-direction:column;gap:8px;padding-top:4px;display:flex}.dashboard-split-track{background:#eef2f8;border-radius:999px;height:8px;display:flex;overflow:hidden}.dashboard-split-domestic{background:var(--blue)}.dashboard-split-industrial{background:var(--green)}.dashboard-split-legend{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.dashboard-split-legend li{align-items:center;gap:7px;display:flex}.dashboard-split-legend b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.dashboard-panels{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;display:grid}.dashboard-panel{flex-direction:column;gap:16px;padding:18px 20px;display:flex}.dashboard-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 20px;display:flex}.dashboard-panel-head h3{margin:0;font-size:.98rem}.dashboard-panel-head p{color:var(--muted);margin:3px 0 0;font-size:.8rem}.dashboard-panel-stats{gap:22px;margin:0;display:flex}.dashboard-panel-stats dt{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;font-size:.72rem;font-weight:600}.dashboard-panel-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:.98rem;font-weight:700}.dashboard-chart{padding-left:56px}.dashboard-chart-plot{border-bottom:1px solid #cfd8e6;height:240px;margin-top:20px;position:relative}.dashboard-chart-gridline{border-top:1px dashed var(--line);height:0;position:absolute;left:0;right:0}.dashboard-chart-gridline span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.72rem;position:absolute;top:0;right:calc(100% + 10px);transform:translateY(-50%)}.dashboard-chart-columns,.dashboard-chart-labels{gap:6px;margin:0;padding:0 4px;list-style:none;display:flex}.dashboard-chart-columns{position:absolute;inset:0}.dashboard-chart-column{border-radius:6px 6px 0 0;flex:1 1 0;justify-content:center;align-items:flex-end;min-width:0;transition:background .12s;display:flex}.dashboard-chart-column:hover{background:#f3f7fe}.dashboard-chart-bar{width:min(70%,48px);display:flex;position:relative}.dashboard-chart-bar-empty{background:#cfd8e6;min-height:2px}.dashboard-chart-stack{transform-origin:bottom;border-radius:6px 6px 0 0;flex-direction:column;width:100%;height:100%;animation:.45s ease-out both dashboard-bar-grow;display:flex;overflow:hidden}.dashboard-chart-stack>span{flex-basis:0;min-height:0}.dashboard-chart-value{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.7rem;font-weight:700;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.dashboard-chart-bar-empty .dashboard-chart-value{color:#9aa6b8;font-weight:500}.dashboard-chart-column-current .dashboard-chart-value{color:var(--blue)}.dashboard-chart-dense .dashboard-chart-value{display:none}.dashboard-chart-dense .dashboard-chart-column:hover .dashboard-chart-value,.dashboard-chart-dense .dashboard-chart-column-current .dashboard-chart-value{display:block}.dashboard-chart-labels{margin-top:8px}.dashboard-chart-labels li{min-width:0;color:var(--muted);text-align:center;flex:1 1 0;font-size:.74rem;font-weight:600}.dashboard-chart-labels small{color:#9aa6b8;font-size:.66rem;font-weight:500;display:block}.dashboard-chart-labels .dashboard-chart-label-current{color:var(--blue);font-weight:800}@media (width<=1023px){.dashboard-chart-dense .dashboard-chart-label-minor{visibility:hidden}}@keyframes dashboard-bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.dashboard-aging{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.dashboard-aging th,.dashboard-aging td{text-align:right;vertical-align:top;border-bottom:1px solid #eef2f8;padding:9px 0}.dashboard-aging th+th,.dashboard-aging th+td,.dashboard-aging td+td{padding-left:14px}.dashboard-aging thead th{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;padding-top:0;font-size:.72rem;font-weight:600}.dashboard-aging thead th:first-child,.dashboard-aging tbody th,.dashboard-aging tfoot th{text-align:left}.dashboard-aging tbody th{white-space:nowrap;font-weight:500}.dashboard-aging td:last-child{width:34%}.dashboard-aging-zero th,.dashboard-aging-zero td{color:#9aa6b8}.dashboard-aging tfoot th,.dashboard-aging tfoot td{border-top:1px solid var(--line);border-bottom:none;font-weight:700}.dashboard-aging-dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.dashboard-aging-bar{background:#eef2f8;border-radius:999px;height:4px;margin-top:6px;display:block;overflow:hidden}.dashboard-aging-bar span{border-radius:999px;height:100%;display:block}.dashboard-age-upTo30{background:var(--blue)}.dashboard-age-upTo60{background:#6b9bf0}.dashboard-age-upTo90{background:#e8a13c}.dashboard-age-upTo120{background:#e0702a}.dashboard-age-over120{background:var(--danger)}.dashboard-mix{gap:14px;margin:0;padding:0;list-style:none;display:grid}.dashboard-mix li{grid-template-columns:110px 1fr;align-items:center;gap:5px 14px;display:grid}.dashboard-mix-label{grid-row:span 2;font-size:.85rem;font-weight:600}.dashboard-mix-bar{align-items:center;gap:10px;display:flex}.dashboard-mix-track{background:#eef2f8;border-radius:999px;flex:1;height:8px;display:block;overflow:hidden}.dashboard-mix-track span{border-radius:999px;height:100%;display:block}.dashboard-mix-count{font-variant-numeric:tabular-nums;text-align:right;min-width:76px;font-size:.82rem;font-weight:700;position:relative}.dashboard-mix-count small{color:var(--muted);margin-left:6px;font-weight:500}.dashboard-today-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;display:grid}.dashboard-list-card{flex-direction:column;display:flex;overflow:hidden}.dashboard-list-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.dashboard-list-head h3{align-items:center;margin:0;font-size:.92rem;font-weight:700;display:flex}.dashboard-list-head a{color:var(--blue);font-size:.82rem;font-weight:600}.dashboard-list-count{background:var(--blue-soft);min-width:22px;height:20px;color:var(--blue);border-radius:999px;place-items:center;margin-left:8px;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-grid}.dashboard-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dashboard-list-item{border-bottom:1px solid #eef2f8;align-items:center;gap:12px;padding:10px 16px;display:flex}.dashboard-list>li:last-child,.dashboard-list>li:last-child>.dashboard-list-item{border-bottom:none}a.dashboard-list-item{transition:background .12s}a.dashboard-list-item:hover{background:#f8faff}.dashboard-list-time{min-width:64px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.8rem;font-weight:600}.dashboard-list-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dashboard-list-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.dashboard-list-main small{color:var(--muted);font-size:.77rem}.dashboard-list-empty{color:var(--muted);text-align:center;margin:0;padding:22px 16px;font-size:.85rem}.dashboard-priority{color:#5d6b7f;background:#eef1f6;border-radius:999px;flex:none;padding:3px 10px;font-size:.75rem;font-weight:600}.dashboard-priority-p1{color:#5d6b7f;background:#eef1f6}.dashboard-priority-p2{color:#1d7fa0;background:#e6f4fa}.dashboard-priority-p3{color:#9a6b12;background:#fff4db}.dashboard-priority-p4{color:#b95a0c;background:#fdeede}.dashboard-priority-p5{color:#c03535;background:#fdeaea}.dashboard-stock-qty{flex-direction:column;flex:none;align-items:flex-end;gap:1px;display:flex}.dashboard-stock-qty strong{color:var(--danger);font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:700}.dashboard-stock-qty small{color:var(--muted);font-size:.74rem}.dashboard-admin{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;display:grid}.dashboard-admin-tile{align-items:center;gap:10px;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.dashboard-admin-icon{border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.dashboard-admin-tile strong{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800}.dashboard-admin-tile span:last-child{color:var(--muted);font-size:.84rem;font-weight:600}@media (width<=767px){.dashboard-header-actions .btn{flex:1}.dashboard-filters{width:100%}.dashboard-panel,.dashboard-kpi{padding:16px}.dashboard-chart{padding-left:44px}.dashboard-aging{font-size:.78rem}.dashboard-aging tbody th{white-space:normal}.dashboard-aging td:last-child{width:auto}.dashboard-aging th+th,.dashboard-aging th+td,.dashboard-aging td+td{padding-left:8px}.dashboard-chart-plot{height:200px}.dashboard-chart-columns,.dashboard-chart-labels{gap:3px;padding:0 2px}.dashboard-chart-value{display:none}.dashboard-chart-column-current .dashboard-chart-value{display:block}.dashboard-chart-labels li{font-size:.64rem}.dashboard-mix li{grid-template-columns:1fr}.dashboard-mix-label{grid-row:auto}}.role-grid{grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:16px;display:grid}.role-card{flex-direction:column;gap:9px;padding:18px;display:flex}.role-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.role-icon{width:40px;height:40px;color:var(--blue);background:#e4edff;border-radius:10px;place-items:center;display:grid}.role-card h2{margin-bottom:0;font-size:1.06rem;font-weight:700}.role-description{min-height:2.6em;color:var(--muted);margin-bottom:0;font-size:.86rem;line-height:1.45}.role-stats{color:var(--muted);gap:16px;font-size:.82rem;display:flex}.role-stats span{align-items:center;gap:6px;display:inline-flex}.role-actions{border-top:1px solid #eef2f8;gap:8px;margin-top:auto;padding-top:13px;display:flex}.perm-matrix{grid-template-columns:1fr 1fr;gap:12px;max-height:46vh;padding-right:4px;display:grid;overflow-y:auto}.perm-group{border:1px solid var(--line);border-radius:10px;overflow:hidden}.perm-group-head{cursor:pointer;background:#f6f9fd;align-items:center;gap:9px;padding:10px 12px;font-size:.86rem;display:flex}.perm-group-head input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue);margin:0}.perm-count{color:var(--muted);margin-left:auto;font-size:.75rem;font-weight:600}.perm-items{flex-direction:column;gap:2px;padding:6px;display:flex}.role-name-help{max-width:100%;display:inline-block}.role-name-help>[tabindex]{cursor:help;border-bottom:1px dotted var(--muted)}.role-name-description{z-index:1000;border:1px solid var(--line);width:max-content;max-width:min(320px,100vw - 16px);color:var(--text);background:#f6f9fd;border-radius:6px;padding:6px 8px;font-size:.82rem;font-weight:400;line-height:1.45;display:block;position:fixed}.perm-availability{color:var(--muted);font-size:.75rem;display:block}@media (width<=1020px){.perm-matrix{grid-template-columns:1fr}}.login-page{grid-template-columns:minmax(400px,1.05fr) minmax(400px,.95fr);min-height:100dvh;display:grid}.login-intro{color:#fff;background:radial-gradient(circle at 82% 12%,#ffffff24,#0000 32%),linear-gradient(150deg,#1a55cf 0%,#2270e8 58%,#2b84f2 100%);flex-direction:column;justify-content:space-between;padding:clamp(34px,5.5vw,76px);display:flex}.login-brand{align-items:center;gap:11px;display:flex}.login-brand .brand-mark{width:38px;height:38px;font-size:1.4rem}.login-brand .brand-name{font-size:1.35rem}.intro-copy{max-width:560px;padding:9vh 0}.intro-copy h1{letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(2rem,3.4vw,2.85rem);font-weight:800;line-height:1.12}.intro-copy p{opacity:.88;max-width:44ch;margin-bottom:0;font-size:1.02rem;line-height:1.6}.intro-foot{opacity:.7;margin-bottom:0;font-size:.8rem}.login-panel{background:#fff;place-items:center;padding:40px 24px;display:grid}.login-form{flex-direction:column;gap:17px;width:100%;max-width:372px;display:flex}.login-form h2{margin-bottom:6px;font-size:1.45rem;font-weight:700}@media (width<=620px){.login-page{grid-template-columns:1fr}.login-intro{padding:30px 26px}.intro-copy{padding:26px 0}.intro-copy h1{font-size:1.6rem}.intro-foot{display:none}}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem 1.5rem;margin:0 0 1rem;display:grid}.detail-grid dt{color:var(--muted);margin:0 0 .15rem;font-size:.8rem}.detail-grid dd{margin:0;font-weight:500}.detail-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;display:flex}.detail-row strong{display:block}.detail-row small{color:var(--muted);font-size:.85rem;display:block}.contact-list,.address-list,.equipment-list{flex-direction:column;gap:8px;display:flex}.contact-item,.address-item,.equipment-item{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.contact-item-body,.address-item-body,.equipment-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.contact-item-body strong,.address-item-body strong,.equipment-item-body strong{font-size:.92rem;font-weight:600}.contact-item-body small,.address-item-body small,.equipment-item-body small{color:var(--muted);font-size:.82rem;display:block}.contact-item-actions,.address-item-actions,.equipment-item-actions{flex:none;align-items:center;gap:4px;display:flex}.detail-section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:13px 16px;display:flex}.detail-section-head h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.detail-section-head .btn{flex:none}.detail-section-body{padding:16px}.detail-header-actions{align-items:center;gap:12px;display:flex}.detail-empty{color:var(--muted);margin:0;font-size:.88rem}.contact-item-body strong,.address-item-body strong,.equipment-item-body strong{align-items:center;gap:8px;display:inline-flex}.primary-pill{background:var(--blue-soft);color:var(--blue);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.equipment-item-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.equipment-item{flex-direction:column;align-items:stretch}.equipment-item-body{overflow-wrap:anywhere}.equipment-item-actions,.equipment-plan-actions{flex-wrap:wrap;gap:4px;display:flex}.equipment-item-meta,.equipment-item-notes{color:var(--muted);margin:0;font-size:.82rem}.equipment-item-notes{color:var(--text);margin-top:4px}.equipment-assets{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.equipment-asset-thumb{border:1px solid var(--border,#d8dee6);background:var(--bg-alt,#f2f5f9);cursor:zoom-in;border-radius:8px;width:72px;height:72px;padding:0;display:block;position:relative;overflow:hidden}.equipment-asset-thumb img{object-fit:cover;width:100%;height:100%}.equipment-asset-zoom{color:#fff;pointer-events:none;background:#1118278c;border-radius:6px;place-items:center;width:22px;height:22px;display:grid;position:absolute;bottom:4px;right:4px}.photo-picker{flex-direction:column;gap:10px;display:flex}.photo-picker-add{align-self:flex-start}.photo-thumb-list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.photo-thumb{position:relative}.photo-thumb-button{border:1px solid var(--border,#d8dee6);background:var(--bg-alt,#f2f5f9);cursor:zoom-in;border-radius:8px;width:76px;height:76px;padding:0;display:block;position:relative;overflow:hidden}.photo-thumb-pending .photo-thumb-button{border-style:dashed}.photo-thumb-button img{object-fit:cover;width:100%;height:100%}.photo-thumb-zoom{color:#fff;pointer-events:none;background:#11182700;place-items:center;transition:background .15s;display:grid;position:absolute;inset:0}.photo-thumb-button:hover .photo-thumb-zoom,.photo-thumb-button:focus-visible .photo-thumb-zoom{background:#11182759}.photo-thumb-remove{z-index:1;position:absolute;top:-6px;right:-6px}.customer-detail-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.customer-detail-main{flex-direction:column;gap:16px;min-width:0;display:flex}.customer-detail-sidebar{min-width:0;min-height:0;display:flex}.activity-sidebar-card{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.activity-sidebar-card--expanded{overflow:visible}.activity-body{flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.activity-sidebar-card--expanded .activity-body{flex:none;overflow:visible}.activity-body--cut:after{content:"";pointer-events:none;background:linear-gradient(#fff0,#fff 85%);height:56px;position:absolute;bottom:0;left:0;right:0}.activity-foot{border-top:1px solid var(--line);flex:none;justify-content:center;padding:10px 16px 14px;display:flex}.chip{white-space:nowrap;border-radius:5px;flex:none;padding:3px 9px;font-size:.74rem;font-weight:700}.chip-success{color:#047857;background:#ecfdf5}.chip-danger{color:#b91c1c;background:#fef2f2}.chip-warning{color:#b45309;background:#fffbeb}.chip-info{color:#1d63ed;background:#eff6ff}.activity-feed{flex-direction:column;gap:10px;min-width:0;display:flex}.activity-block{flex-direction:column;gap:4px;min-width:0;display:flex}.activity-row{border:1px solid var(--line);min-width:0;color:var(--text);background:#fbfcfe;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.84rem;text-decoration:none;transition:border-color .12s,background .12s;display:flex;overflow:hidden}a.activity-row:hover{border-color:var(--blue);background:#f4f8ff}.activity-row--appointment{font-weight:600}.activity-row--nested{background:#fff;border-style:dashed;margin-left:24px}.activity-tag{text-transform:uppercase;border-radius:4px;flex:none;padding:2px 7px;font-size:.68rem;font-weight:700}.activity-tag--appointment{color:#1a56db;background:#e8f0fe}.activity-tag--note{color:#6d28d9;background:#ede9fe}.activity-row--restricted{color:#526078;background:#f2f5fa;font-weight:400}.activity-row--restricted .activity-tag,.activity-row--restricted .chip{color:inherit;background:#f2f5fa}.activity-info{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=900px){.customer-detail-layout{grid-template-columns:minmax(0,1fr)}.activity-body--collapsed{max-height:480px}.activity-sidebar-card--expanded .activity-body--collapsed{max-height:none}.equipment-asset-thumb{width:64px;height:64px}.photo-thumb-button{width:68px;height:68px}}@media (width<=767px){.equipment-asset-thumb{width:56px;height:56px}.photo-thumb-list{gap:12px}.photo-thumb-button{width:72px;height:72px}.photo-thumb-remove{width:26px;height:26px;top:-8px;right:-8px}}.products-page .page-header{align-items:flex-end}.page-header-actions,.product-row-actions{align-items:center;gap:8px;display:flex}.products-toolbar{flex-wrap:wrap}.products-toolbar .search-box{flex:1;min-width:min(100%,340px)}.products-table .product-reference{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.products-page .table-wrap{overflow-x:auto}.products-table{min-width:1040px}.products-table th.col-category{width:210px}.products-table th.col-kind,.products-table th.col-status{width:150px}.product-name-cell{flex-direction:column;gap:3px;min-width:240px;display:flex}.product-name-cell small{max-width:420px;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.kind-stock_item{color:#245da8;background:#eaf3ff}.kind-service{color:#6847b8;background:#f1edff}.products-load-error{margin:12px 16px}.master-toolbar{justify-content:space-between;align-items:flex-end}.master-title{margin:0;font-size:1.05rem}.master-lead{max-width:520px;color:var(--muted);margin:4px 0 0;font-size:.82rem}.master-table{min-width:420px}.master-table .master-name{color:var(--text);font-weight:600}.master-table .unit-symbol{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.master-row-actions{align-items:center;gap:8px;display:flex}@media (width<=900px){.products-page .page-header{align-items:stretch}.page-header-actions{flex-wrap:wrap}}.product-detail-page .page-header{align-items:flex-end}.product-detail-page .detail-notes{white-space:pre-wrap;margin:4px 0 0}.product-detail-page .segmented{margin-bottom:16px}.detail-empty-state{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.detail-empty-state p{color:var(--muted);margin:0;font-size:.9rem}.product-suppliers-table{min-width:760px}.product-suppliers-table .supplier-reference-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.product-suppliers-table .product-name-cell strong{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.product-suppliers-table .price-cell{font-variant-numeric:tabular-nums;font-weight:600}@media (width<=900px){.product-detail-page .page-header{align-items:stretch}}.product-detail-layout{grid-template-columns:1fr 300px;align-items:stretch;gap:16px;display:grid}.product-detail-main{min-width:0}.product-detail-sidebar{min-width:0;display:flex}@media (width<=980px){.product-detail-layout{grid-template-columns:1fr}}.product-movements-panel{flex-direction:column;flex:1;gap:0;display:flex}.product-movements-empty{margin:0;padding:6px 0;font-size:.88rem}.product-movements-head h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.82rem}.product-movements-stock{font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;display:inline-flex}.product-movements-stock strong{color:var(--text);font-size:1.05rem;font-weight:700}.product-movements-stock-unit{color:var(--muted);font-size:.76rem}.product-movements-stock-pending{color:var(--muted)}.product-movements-body{flex:1;padding:12px 16px 16px}.product-movements-empty{margin:0;font-size:.88rem}.product-movements-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.product-movement{border-top:1px solid var(--line);flex-direction:column;gap:2px;padding:8px 0;display:flex}.product-movement:first-child{border-top:none;padding-top:0}.product-movement:last-child{padding-bottom:0}.product-movement-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.product-movement-qty{font-variant-numeric:tabular-nums;flex:none}.product-movement-detail{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:0 8px;font-size:.8rem;display:flex}.product-name-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.product-name-link:hover{color:#264d91}.product-movements-summary{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 16px;font-size:.85rem;display:flex}.product-movements-minimum strong{color:var(--text);font-variant-numeric:tabular-nums}.product-movements-below{color:#991b1b;background:#fdeef0;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.product-movement-date{flex:none;font-size:.76rem}.product-assets-card{margin-top:16px}.product-assets-grid{flex-wrap:wrap;gap:12px;display:flex}.product-asset{margin:0;position:relative}.product-asset-zoom{cursor:zoom-in;background:0 0;border:none;padding:0;display:block}.product-asset-zoom img{border:1px solid var(--line);object-fit:cover;background:#f2f5f9;border-radius:10px;width:96px;height:96px;display:block}.product-asset figcaption{color:#fff;background:#0f285abf;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600;position:absolute;bottom:8px;left:8px}.product-asset-actions{flex-direction:column;gap:6px;display:flex;position:absolute;top:6px;right:6px}@media (width<=720px){.product-asset-zoom img{width:80px;height:80px}.product-asset-actions .asset-action{width:28px;height:28px}}.inventory-toolbar{flex-wrap:wrap;align-items:center;gap:12px}.inventory-toolbar .search-box{flex:1;min-width:min(100%,320px)}.inventory-filter{flex-direction:row;align-items:center;gap:8px;font-size:.82rem}.inventory-filter select{width:auto;height:36px}.toggle-chip{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d8e0ec;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.toggle-chip input{width:auto;accent-color:var(--blue);margin:0}.inventory-page .table-wrap{overflow-x:auto}.inventory-table,.movements-table{min-width:880px}.inventory-table .product-reference,.movements-table .product-reference{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.inventory-table .product-name-cell,.movements-table .product-name-cell{flex-direction:column;display:flex}.quantity-cell{color:var(--text);align-items:center;gap:5px;font-weight:700;display:inline-flex}.quantity-cell svg{color:var(--danger)}.quantity-in{color:#1f8a4c;font-weight:700}.quantity-out{color:var(--danger);font-weight:700}.reason-cell{max-width:320px;color:var(--muted);font-size:.85rem}.inventory-table tr.row-warning{background:#fff7ed}.inventory-table .col-actions{width:auto;min-width:150px}.inventory-row-actions{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.chip-type.movement-adjustment{color:#3730a3;background:#eef2ff}.chip-type.movement-initial,.chip-type.movement-inbound{color:#166534;background:#eef9f1}.chip-type.movement-outbound{color:#991b1b;background:#fdeef0}.chip-type.movement-return{color:#166534;background:#eef9f1}.chip-type.movement-reversal{color:#9a3412;background:#fff7ed}.dialog-hint{color:var(--muted);margin:4px 0 0;font-size:.82rem}.suppliers-page .page-header{align-items:flex-end}.suppliers-toolbar{flex-wrap:wrap}.suppliers-toolbar .search-box{flex:1;min-width:min(100%,340px)}.suppliers-load-error{margin:12px 16px}.suppliers-table{min-width:720px}.suppliers-table .supplier-number-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.supplier-detail-page .detail-notes{white-space:pre-wrap;margin:4px 0 0}.supplier-detail-page .segmented{margin-bottom:16px}.supplier-products-table{min-width:760px}.supplier-products-hint{margin:0 0 12px;font-size:.85rem}.supplier-products-table .supplier-reference-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.supplier-products-table .product-name-cell strong{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.supplier-products-table .price-cell{font-variant-numeric:tabular-nums;font-weight:600}.price-history-table{min-width:360px}.price-history-table .price-cell{font-variant-numeric:tabular-nums;font-weight:600}.dialog-current{color:var(--muted);margin:0 0 12px;font-size:.88rem}@media (width<=900px){.suppliers-page .page-header{align-items:stretch}}.purchase-orders-page .page-header,.purchase-order-editor .page-header{align-items:flex-end}.purchase-orders-toolbar{flex-wrap:wrap}.purchase-orders-toolbar .search-box{flex:1;min-width:min(100%,340px)}.purchase-orders-load-error{margin:12px 16px}.purchase-orders-table,.purchase-order-lines-table{min-width:760px}.purchase-orders-table .purchase-order-number-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.purchase-order-editor{flex-direction:column;gap:16px;display:flex}.purchase-order-header{align-items:flex-start}.purchase-order-fields{flex-direction:column;gap:14px;padding:16px;display:flex}.purchase-order-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.purchase-order-layout{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.purchase-order-layout:has(.purchase-order-aside){grid-template-columns:minmax(0,1fr) 300px}.purchase-order-aside{flex-direction:column;display:flex}.purchase-order-aside>.card{flex:1}.purchase-order-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.purchase-order-supplier-hint{border:1px dashed var(--line);color:var(--muted);background:#fbfcfe;border-radius:8px;margin:0;padding:14px;font-size:.88rem}.purchase-order-product-cell{flex-direction:column;gap:6px;min-width:260px;display:flex}.purchase-order-lines-table .price-cell{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.purchase-order-receive-table{min-width:720px}.purchase-order-receive-lead{color:var(--muted);margin:0 0 12px;font-size:.88rem;line-height:1.5}@media (width<=1023px){.purchase-order-layout:has(.purchase-order-aside){grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.purchase-orders-toolbar{justify-content:stretch}.purchase-order-product-cell{min-width:0}.purchase-order-actions{justify-content:stretch}.purchase-order-actions .btn{flex:1}.purchase-order-header-actions{justify-content:stretch}.purchase-order-header-actions .btn{flex:1}}.delivery-notes-page .page-header{align-items:flex-end}.delivery-notes-toolbar{flex-wrap:wrap}.delivery-notes-toolbar .search-box{flex:1;min-width:min(100%,340px)}.delivery-notes-load-error{margin:12px 16px}.delivery-notes-table{min-width:820px}.delivery-notes-table .delivery-note-number-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.delivery-notes-table .amount-cell{font-variant-numeric:tabular-nums;font-weight:600}.delivery-note-editor{flex-direction:column;gap:16px;display:flex}.delivery-note-header{align-items:flex-end}.delivery-note-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.delivery-note-layout{grid-template-columns:minmax(0,1fr) 340px;gap:1rem;display:grid}.delivery-note-main{flex-direction:column;gap:16px;min-width:0;display:flex}.delivery-note-aside{flex-direction:column;gap:16px;display:flex}.delivery-note-aside>.delivery-note-collections{flex:1}.delivery-note-form-fields{flex-direction:column;gap:18px;display:flex}.delivery-note-quote{flex-direction:column;gap:12px;display:flex}.delivery-note-quote-link{background:var(--blue-soft);color:var(--blue);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.delivery-note-quote-link:hover{background:var(--blue);color:#fff}.delivery-note-quote-meta{color:var(--muted);margin:0;font-size:.82rem}.delivery-note-priority{align-items:center;gap:12px;display:flex}.delivery-note-priority input[type=range]{flex:1;width:auto;margin-left:0}.delivery-note-priority-value{text-align:center;border-radius:999px;flex:none;min-width:84px;padding:4px 10px;font-size:.78rem;font-weight:700}.delivery-note-priority-value.priority-p1{color:#5d6b7f;background:#eef1f6}.delivery-note-priority-value.priority-p2{color:#1d7fa0;background:#e6f4fa}.delivery-note-priority-value.priority-p3{color:#9a6b12;background:#fff4db}.delivery-note-priority-value.priority-p4{color:#b95a0c;background:#fdeede}.delivery-note-priority-value.priority-p5{color:var(--danger);background:#fdeaea}.delivery-note-lines{flex-direction:column;gap:8px;display:flex}.delivery-note-line{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.delivery-note-line-kind{width:108px;height:40px;color:var(--text);background:#fff;border:1px solid #ccd6e4;border-radius:8px;flex:none;padding:0 8px;font-size:.86rem}.delivery-note-line-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.delivery-note-line-text{width:100%;height:40px;color:var(--text);background:#fff;border:1px solid #ccd6e4;border-radius:8px;padding:0 12px;font-family:inherit;font-size:.9rem}.delivery-note-line-text:focus,.delivery-note-line-qty:focus,.delivery-note-line-price:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #1d63e321}.delivery-note-line-hint{color:var(--muted);padding-left:2px;font-size:.75rem}.delivery-note-line-qty,.delivery-note-line-price{width:96px;height:40px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;background:#fff;border:1px solid #ccd6e4;border-radius:8px;flex:none;padding:0 10px;font-family:inherit;font-size:.9rem}.delivery-note-line-remove{flex:none}.delivery-note-line-discount{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.delivery-note-totals .detail-section-body{justify-content:flex-end;display:flex}.totals-grid{grid-template-columns:220px;gap:6px;margin:0;display:grid}.totals-grid div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.totals-grid dt{color:var(--muted);font-size:.85rem}.totals-grid dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.totals-grid .total-row{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}.totals-grid .total-row dt{color:var(--text);font-weight:700}.totals-grid .total-row dd{font-size:1.1rem}.delivery-note-aside .delivery-note-totals .detail-section-body{justify-content:stretch}.delivery-note-aside .totals-grid{grid-template-columns:1fr;width:100%}.confirm-stock-preview{flex-direction:column;gap:10px;display:flex}.confirm-stock-preview p{margin:0;font-size:.9rem;line-height:1.45}.confirm-stock-table{border:1px solid var(--line);border-spacing:0;border-radius:8px;width:100%;font-size:.84rem;overflow:hidden}.confirm-stock-table th,.confirm-stock-table td{text-align:right;border-bottom:1px solid var(--line);padding:6px 8px}.confirm-stock-table th{color:var(--muted);text-transform:uppercase;background:#f6f8fc;font-size:.78rem;font-weight:600}.confirm-stock-table td:first-child,.confirm-stock-table th:first-child{text-align:left}.confirm-stock-table td:not(:first-child){font-variant-numeric:tabular-nums}.confirm-stock-table .stock-current{color:var(--muted)}.stock-consumption{color:#a84712;background:#fff1e8;border-radius:999px;justify-content:center;min-width:34px;padding:2px 7px;font-weight:700;display:inline-flex}.stock-remaining{color:var(--text);font-size:.92rem}.confirm-stock-table .stock-negative{color:var(--danger);font-weight:700}.confirm-stock-table .stock-negative .stock-remaining{color:inherit}.delivery-note-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.delivery-note-collections .detail-section-body{flex-direction:column;gap:14px;display:flex}.collection-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0;display:grid}.collection-summary div{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.collection-summary dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem}.collection-summary dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.1rem;font-weight:700}.collection-balance-pending{background:#fff7e6;border-color:#f0d28a}.collection-balance-pending dd{color:#9a6b12}.collection-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.collection-item{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.collection-item-main{flex-wrap:wrap;flex:1;align-items:center;gap:6px 14px;min-width:0;display:flex}.collection-item-end{flex:none;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.collection-amount{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.collection-method{color:var(--text);font-size:.86rem;font-weight:600}.collection-date{color:var(--muted);font-size:.82rem}.collection-reference{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.collection-status-badge{flex:none}.collection-void-info{display:inline-flex;position:relative}.collection-void-info-trigger{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);cursor:help;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.collection-void-info-trigger:hover,.collection-void-info-trigger:focus-visible{color:var(--danger);border-color:var(--danger);background:#fff5f5;outline:none}.collection-void-info-popover{z-index:30;border:1px solid var(--line);width:240px;max-width:70vw;color:var(--text);text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;background:#fff;border-radius:10px;padding:10px 12px;font-size:.8rem;line-height:1.45;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-4px);box-shadow:0 8px 24px #0f172a1f}.collection-void-info-popover:before{content:"";border-left:1px solid var(--line);border-top:1px solid var(--line);background:#fff;width:9px;height:9px;position:absolute;top:-5px;right:8px;transform:rotate(45deg)}.collection-void-info:hover .collection-void-info-popover,.collection-void-info:focus-within .collection-void-info-popover{opacity:1;visibility:visible;transform:translateY(0)}.collection-void-info-popover-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:.7rem;font-weight:600;display:block}.collection-status-voided{background:#fafafa;border-style:dashed}.collection-status-voided .collection-amount,.collection-status-voided .collection-method{color:var(--muted);text-decoration:line-through}.btn-sm{padding:4px 10px;font-size:.8rem}@media (width<=767px){.delivery-notes-page .page-header,.delivery-note-header{align-items:stretch}.delivery-note-line{flex-wrap:wrap}.delivery-note-line-main{flex-basis:100%;order:-1;width:100%}.delivery-note-line-kind,.delivery-note-line-qty,.delivery-note-line-price{flex:1;width:auto}.delivery-note-actions{justify-content:stretch}.delivery-note-actions .btn{flex:1}}@media (width<=1023px){.delivery-note-layout{grid-template-columns:1fr}}.appointments-page .page-header{align-items:flex-end}.appointments-toolbar{flex-wrap:wrap}.appointments-toolbar .search-box{flex:1;min-width:min(100%,340px)}.appointments-load-error{margin:12px 16px}.appointments-table{min-width:760px}.appointment-number-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.appointment-editor{gap:16px;display:grid}.appointment-availability-action{display:flex}.availability-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.availability-day{text-align:center;text-transform:capitalize;min-width:230px}.availability-only-free{align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.availability-grid{border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:620px;display:flex}.availability-row{border-top:1px solid var(--line);grid-template-columns:190px minmax(0,1fr);display:grid}.availability-past-note{margin:0 0 10px}.availability-row--head{z-index:2;background:#f6f8fc;border-top:none;border-radius:8px 8px 0 0;position:sticky;top:0}.dialog-body .availability-row--head{top:-15px}.availability-row--selected{background:var(--blue-soft)}.availability-name-head{color:var(--muted);padding:6px 10px;font-size:.75rem;font-weight:600}.availability-hours{height:28px;position:relative}.availability-hours span{color:var(--muted);padding-left:3px;font-size:.7rem;position:absolute;top:7px}.availability-name{border:none;border-right:1px solid var(--line);min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:6px 10px;font-size:.84rem;display:flex}.availability-name:hover:not(:disabled){background:#eef3fb}.availability-name:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.availability-name--static{cursor:default}.availability-row--selected .availability-name{font-weight:600}.availability-swatch{border-radius:50%;flex:none;width:9px;height:9px}.availability-name-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.availability-badge{flex:none;padding:1px 8px;font-size:.7rem}.availability-track{background-image:repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px calc(100% / var(--availability-hours)));min-height:36px;position:relative}.availability-track--pickable{cursor:pointer}.availability-track--pickable:hover{background-color:#f3f7fd}.availability-block{color:var(--text);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:default;background:#e4e9f2;border:0;border-left:3px solid;border-radius:4px;padding:0 5px;font-size:.68rem;line-height:26px;position:absolute;top:5px;bottom:5px;overflow:hidden}.availability-block--link{cursor:pointer}.availability-block--link:hover{background:#d6deeb}.availability-block--link:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.availability-selection{pointer-events:none;background:#177a3d1a;border:2px dashed #177a3d;border-radius:4px;position:absolute;top:2px;bottom:2px}.availability-selection--clash{border-color:var(--danger);background:#c035351f}.appointment-header{align-items:flex-end}.appointment-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.appointment-delivery-note-link{color:var(--blue);align-items:center;gap:6px;margin-top:4px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.appointment-delivery-note-link:hover{text-underline-offset:2px;text-decoration:underline}.appointment-delivery-note-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.appointment-editor .detail-section-body{flex-direction:column;gap:18px;display:flex}.appointment-editor .detail-section-body>*{margin:0}.field-read-only{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;flex-direction:column;gap:2px;margin:0;padding:10px 12px;display:flex}.field-read-only strong{color:var(--muted);font-size:.75rem;font-weight:600}.field-note{color:var(--muted);margin:8px 0 0;font-size:.78rem}.appointment-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.appointment-transition-buttons{flex-wrap:wrap;gap:10px;display:flex}@media (width<=767px){.appointments-page .page-header,.appointment-header{align-items:stretch}.appointment-header-actions{flex-direction:column;align-items:stretch;gap:8px}.appointment-header-actions .badge{align-self:flex-start}.appointment-header-actions .appointment-transition-buttons{width:100%}.appointment-actions{justify-content:stretch}.appointment-actions .btn,.appointment-transition-buttons .btn{flex:1}}.revisions-page .page-header{align-items:flex-end}.revisions-page .page-lead{color:#5a6b7d;margin:4px 0 0}.revision-customer-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.revision-customer-link:hover{color:#264d91}.revision-days{flex-direction:column;gap:2px;display:flex}.revision-days-value{align-items:center;gap:6px;font-weight:600;display:inline-flex}.revision-days-alert .revision-days-value{color:#b3261e}.revision-days-ok .revision-days-value{color:#1e6b3a}.revision-days-stalled{color:#8a6d1a}.tasks-page .page-header{align-items:flex-end}.tasks-toolbar{flex-wrap:wrap}.tasks-toolbar .search-box{flex:1;min-width:min(100%,340px)}.tasks-load-error{margin:12px 16px}.tasks-table{min-width:820px}.task-age-cell{font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;display:flex}.task-editor{flex-direction:column;gap:16px;display:flex}.task-header{align-items:flex-end}.task-fields{flex-direction:column;gap:14px;padding:16px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.task-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.task-layout{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.task-layout:has(.task-aside){grid-template-columns:minmax(0,1fr) 300px}.task-aside{flex-direction:column;display:flex}.task-aside>.card{flex:1}.task-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.task-meta{flex-direction:column;gap:12px;padding:16px;display:flex}.meta-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin:0;display:grid}.meta-grid dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;font-size:.74rem;font-weight:600}.meta-grid dd{margin:0}.meta-grid dd a{color:var(--blue);text-underline-offset:2px;font-weight:500;text-decoration:underline}.meta-grid dd a:hover{color:var(--blue-dark)}.priority-p1{color:#5d6b7f;background:#eef1f6}.priority-p2{color:#1d7fa0;background:#e6f4fa}.priority-p3{color:#9a6b12;background:#fff4db}.priority-p4{color:#b95a0c;background:#fdeede}.priority-p5{color:#c03535;background:#fdeaea}@media (width<=1023px){.task-layout:has(.task-aside){grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.tasks-page .page-header,.task-header{align-items:stretch}.form-grid{grid-template-columns:minmax(0,1fr)}.task-actions{justify-content:stretch}.task-actions .btn{flex:1}.task-header-actions{justify-content:stretch}.task-header-actions .btn{flex:1}}.quote-requests-page .page-header,.quotes-page .page-header,.quote-request-editor .page-header,.quote-editor .page-header{align-items:flex-end}.quote-origin-note{border:1px solid var(--line);background:var(--blue-soft);border-radius:8px;margin:0 0 14px;padding:9px 14px;font-size:.88rem}.quote-origin-note a{color:var(--blue);font-weight:600}.quote-origin-note a:hover{text-decoration:underline}.quote-requests-toolbar,.quotes-toolbar{flex-wrap:wrap}.quote-requests-toolbar .search-box,.quotes-toolbar .search-box{flex:1;min-width:min(100%,340px)}.quote-requests-load-error,.quotes-load-error{margin:12px 16px}.quote-requests-table{min-width:720px}.quotes-table .person-cell .badge{flex:none;font-size:.72rem}.quote-request-description{text-overflow:ellipsis;white-space:nowrap;max-width:360px;display:block;overflow:hidden}.quote-request-editor,.quote-editor{flex-direction:column;gap:16px;display:flex}.quote-request-header,.quote-header{align-items:flex-start}.quote-request-header-actions,.quote-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.quote-request-layout,.quote-layout{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}:is(.quote-request-layout:has(.quote-request-aside),.quote-layout:has(.quote-aside)){grid-template-columns:minmax(0,1fr) 300px}.quote-request-aside,.quote-aside{flex-direction:column;gap:16px;display:flex}.quote-request-aside>.card{flex:1}.quotes-trays{flex-wrap:wrap}.quote-follow-up-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quote-header-actions-note{text-align:right;flex-basis:100%}.quote-status-menu{width:220px}.quote-aside .card-title{margin:0;font-size:1.125rem}.quote-aside .btn,.quote-header-actions .btn{height:auto;min-height:42px;padding:10px 12px}.quote-aside .btn:focus-visible,.quote-header-actions .btn:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.quote-aside .btn:active:not(:disabled),.quote-header-actions .btn:active:not(:disabled){box-shadow:inset 0 2px 4px #0f285a29}.quote-pdf-section{gap:16px}.quote-pdf-section.is-dragging{background:var(--blue-soft);border-color:var(--blue);outline:2px dashed var(--blue);outline-offset:3px}.quote-pdf-summary{align-items:flex-start;gap:12px;padding-block:4px;display:flex}.quote-pdf-summary>svg{color:var(--blue);flex:none}.quote-pdf-summary>div{min-width:0}.quote-pdf-summary strong{overflow-wrap:anywhere;font-size:.88rem;display:block}.quote-pdf-caption{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.quote-pdf-upload{flex-direction:column;gap:8px;display:flex}.quote-request-fields,.quote-fields{flex-direction:column;gap:14px;padding:16px;display:flex}.quote-request-actions,.quote-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.quote-request-meta,.quote-meta{flex-direction:column;gap:12px;padding:16px;display:flex}.quote-lines{flex-direction:column;gap:8px;display:flex}.quote-lines-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.quote-lines-table{min-width:720px}.quote-lines-table th,.quote-lines-table td{vertical-align:top}.quote-line-product{flex-direction:column;gap:6px;min-width:260px;display:flex}.quote-lines-table .price-cell{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.quote-lines-table .stepper-input{width:120px}.form-error-inline{color:var(--danger);font-size:.74rem;display:block}.quote-totals{justify-content:flex-end;display:flex}.quote-totals dl{gap:6px;min-width:240px;margin:0;display:grid}.quote-totals dl>div{justify-content:space-between;gap:16px;display:flex}.quote-totals dt{color:var(--muted)}.quote-totals dd{font-variant-numeric:tabular-nums;margin:0}.quote-totals-total dt,.quote-totals-total dd{font-size:1.05rem;font-weight:700}.quote-number-cell{color:#264d91;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:700}.quote-sent-cell{flex-direction:column;gap:2px;display:flex}.quote-sent-cell small{color:var(--muted);font-size:.78rem}.quote-follow-pending:before,.quote-follow-sent:before,.quote-follow-closed:before{content:"";vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.quote-follow-pending:before{background:#9aa5b5}.quote-follow-sent:before{background:#d4a017}.quote-follow-closed:before{background:#177a3d}.badge.status-do-not-contact.quote-follow-closed:before{background:#c03535}.quote-pdf-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quote-pdf-actions .btn{flex:1}.quotes-table{min-width:720px}.btn-icon{padding:6px;line-height:0}@media (width<=1023px){:is(.quote-request-layout:has(.quote-request-aside),.quote-layout:has(.quote-aside)){grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.quote-request-actions,.quote-actions{justify-content:stretch}.quote-request-actions .btn,.quote-actions .btn{flex:1}.quote-request-header-actions,.quote-header-actions{justify-content:stretch}.quote-request-header-actions .btn,.quote-header-actions .btn{flex:1}.quote-lines-table{min-width:0}.quote-lines-table,.quote-lines-table tbody,.quote-lines-table tr,.quote-lines-table td{display:block}.quote-lines-table thead{display:none}.quote-lines-table tbody tr{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;margin:0 0 8px;padding:12px}.quote-lines-table tbody tr:last-child{margin-bottom:0}.quote-lines-table tbody tr>td+td{margin-top:8px}.quote-lines-table td{border-bottom:none;padding:0}.quote-lines-table td:before{content:attr(data-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.quote-lines-table td:not([data-label]):before{content:none}.quote-lines-table td:not([data-label]){text-align:right}.quote-lines-table .input,.quote-lines-table .input-sm,.quote-lines-table .stepper-input{width:100%}.quote-lines-table .stepper-input .input{width:auto}.quote-lines-table .quantity-cell{flex-wrap:wrap}.quote-line-product{min-width:0}}.schedule-page .page-header{align-items:flex-end}.schedule-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.schedule-toolbar-center{align-items:center;gap:14px;margin-inline:auto;display:inline-flex}.schedule-mode-toggle{background:#f3f6fb;border:1px solid #d8e0ec;border-radius:10px;padding:4px;display:inline-flex}.schedule-date-nav{align-items:center;gap:8px;display:inline-flex}.schedule-filter{flex:0 380px;min-width:280px}.schedule-active-filters{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--card-shadow);background:#fbfcfe;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:14px;padding:10px 14px;display:flex}.schedule-active-filters-label{color:var(--muted);font-size:.8rem;font-weight:600}.schedule-active-filters-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.schedule-active-filter-chip{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px 4px 4px 9px;font-size:.82rem;font-weight:600;line-height:1.2;display:inline-flex}.schedule-active-filter-swatch{border-radius:50%;flex:none;width:10px;height:10px}.schedule-active-filter-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.schedule-active-filter-remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:#eef2f8;border:none;border-radius:50%;place-items:center;padding:0;transition:background .1s,color .1s;display:grid}.schedule-active-filter-remove:hover{background:var(--danger);color:#fff}.schedule-active-filters-clear{margin-left:auto}.schedule-content-card{flex-direction:column;gap:14px;padding:16px;display:flex}.schedule-operators{overflow-x:auto}.schedule-operators-hint{margin:0 0 10px}.schedule-loading,.schedule-empty{text-align:center;padding:20px 0}.schedule-days{flex-direction:column;gap:12px;display:flex}.schedule-day{flex-direction:column;gap:4px;display:flex}.schedule-day-title{text-transform:capitalize;color:var(--muted);border-bottom:1px solid var(--line);margin:0;padding-bottom:3px;font-size:.88rem;font-weight:700}.schedule-day-events{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.schedule-event{display:block}.schedule-event-link{border:1px solid var(--line);color:var(--text);background:#fbfcfe;border-left:3px solid #94a3b8;border-radius:6px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 10px 5px 8px;text-decoration:none;transition:background .1s,border-color .1s;display:grid}.schedule-event-link:hover{background:#f3f7fd}.schedule-event-time{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:650}.schedule-event-body{flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0;display:flex}.schedule-event-title{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.schedule-event-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.schedule-event-link .badge{flex-shrink:0;padding:2px 8px;font-size:.72rem}.schedule-event--task .schedule-event-link{background:#fffcf5}@media (width<=767px){.schedule-toolbar{flex-direction:column;align-items:stretch}.schedule-toolbar-center{flex-wrap:wrap;justify-content:center;margin-inline:0}.schedule-mode-toggle{align-self:center}.schedule-date-nav{justify-content:center}.schedule-event-link{grid-template-columns:48px minmax(0,1fr);gap:6px 8px}.schedule-event-link .badge{grid-column:2;justify-self:start}}.schedule-calendar{min-width:0}.schedule-calendar .fc{color:var(--text);border-radius:var(--radius);font-family:Inter,system-ui,sans-serif;font-size:.85rem;overflow:hidden}.schedule-calendar .fc .fc-col-header-cell-cushion{color:var(--muted);text-transform:capitalize;letter-spacing:.01em;padding:8px 4px;font-weight:600}.schedule-calendar .fc .fc-daygrid-day-number,.schedule-calendar .fc .fc-timegrid-slot-label-cushion{color:var(--text);font-weight:500;text-decoration:none}.schedule-calendar .fc .fc-daygrid-day-number{padding:4px 8px}.schedule-calendar .fc .fc-timegrid-slot-label-cushion{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.74rem}.schedule-calendar .fc .fc-day-sat,.schedule-calendar .fc .fc-day-sun{background:#f6f8fc}.schedule-calendar .fc .fc-daygrid-day.fc-day-other{background:#fbfcfe}.schedule-calendar .fc .fc-daygrid-day.fc-day-today,.schedule-calendar .fc .fc-timegrid-col.fc-day-today{background:var(--blue-soft)}.schedule-calendar .fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number,.schedule-calendar .fc .fc-timegrid-col.fc-day-today .fc-col-header-cell-cushion{color:var(--blue);font-weight:700}.schedule-calendar .fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number:after{content:"";background:var(--blue);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.schedule-calendar .fc .fc-timegrid-now-indicator-line{border-color:var(--blue);border-width:2px 0 0}.schedule-calendar .fc .fc-timegrid-now-indicator-arrow{color:var(--blue);border-color:var(--blue)}.schedule-calendar .fc .fc-event{cursor:pointer;border:none;border-radius:6px;padding:2px 6px;font-size:.78rem;font-weight:500;transition:box-shadow .12s,filter .12s;box-shadow:0 1px 1px #0f285a14}.schedule-calendar .fc .fc-event:hover{filter:brightness(1.04);box-shadow:0 2px 6px #0f285a29}.schedule-calendar .fc .fc-event.schedule-cal-evt-task{background:#fff;border-style:solid;border-width:2px;box-shadow:0 1px 1px #0f285a0f}.schedule-calendar .fc .fc-event.schedule-cal-evt-task:hover{background:var(--blue-soft);filter:none}.schedule-calendar .fc .fc-event.schedule-cal-evt-task .schedule-cal-dot{border-color:#0f285a2e}.schedule-calendar .fc .fc-event-title,.schedule-calendar .fc .fc-event .fc-event-title{text-overflow:ellipsis;font-weight:500;overflow:hidden}.schedule-calendar .fc .fc-daygrid-event-dot{border-color:currentColor}.schedule-calendar .fc .fc-daygrid-block-event .fc-event-title,.schedule-calendar .fc .fc-daygrid-dot-event .fc-event-title{font-weight:500}.schedule-calendar .fc td,.schedule-calendar .fc th,.schedule-calendar .fc .fc-scrollgrid,.schedule-calendar .fc .fc-scrollgrid table,.schedule-calendar .fc .fc-scrollgrid>table,.schedule-calendar .fc .fc-scrollgrid-section>table{border-color:var(--line)}.schedule-calendar .fc .fc-scrollgrid{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--card-shadow)}.schedule-calendar .fc .fc-timegrid-slot-lane,.schedule-calendar .fc .fc-timegrid table{border-color:#eef2f8}.schedule-calendar .fc .fc-timegrid-allday{background:#fbfcfe}.schedule-calendar .fc .fc-timegrid-allday .fc-daygrid-event{font-size:.74rem}.schedule-calendar .fc .fc-button{background:var(--blue);border:none;border-radius:6px;font-weight:600}.schedule-calendar .fc .fc-button:hover{background:var(--blue-dark)}.schedule-calendar .fc .fc-button:disabled{opacity:.5}.schedule-calendar .fc .fc-button-active{background:var(--blue-dark)}.schedule-calendar .fc .fc-toolbar-title{font-size:1rem;font-weight:700}@media (width<=767px){.schedule-calendar .fc{font-size:.72rem}.schedule-calendar .fc .fc-toolbar-title{font-size:.9rem}}.schedule-cal-event{flex-direction:column;gap:1px;padding:1px 3px;display:flex;overflow:hidden}.schedule-cal-row{align-items:center;gap:4px;min-width:0;display:flex}.schedule-cal-dot{border:1px solid #ffffffd9;border-radius:50%;flex:none;width:7px;height:7px}.schedule-cal-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.schedule-cal-sub{opacity:.92;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.schedule-calendar .fc .fc-daygrid-event{min-height:0}.schedule-cal-event--month{flex-direction:column;gap:0;min-height:38px;padding:2px 5px;display:flex;overflow:hidden}.schedule-cal-month-time{font-variant-numeric:tabular-nums;opacity:.95;align-items:center;gap:4px;font-size:.66rem;font-weight:700;display:flex}.schedule-cal-month-title{text-overflow:ellipsis;white-space:nowrap;font-size:.71rem;font-weight:600;overflow:hidden}.schedule-cal-month-tech{opacity:.92;text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;font-weight:400;overflow:hidden}.schedule-cal-popover{z-index:1000;min-width:220px;max-width:280px;color:var(--text);border:1px solid var(--line);box-shadow:var(--menu-shadow);pointer-events:none;background:#fff;border-radius:8px;font-size:.8rem;position:fixed;overflow:hidden}.schedule-cal-popover-accent{height:3px;display:block}.schedule-cal-popover-head{justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 4px;display:flex}.schedule-cal-popover-time{font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:700;display:inline-flex}.schedule-cal-popover-status{background:var(--blue-soft);color:var(--blue-dark);border-radius:8px;flex:none;padding:1px 8px;font-size:.7rem;font-weight:600}.schedule-cal-popover-title{word-break:break-word;padding:0 12px 8px;font-size:.86rem;font-weight:600;line-height:1.25}.schedule-cal-popover-meta{border-top:1px solid var(--line);flex-direction:column;gap:3px;margin:0;padding:6px 12px 10px;display:flex}.schedule-cal-popover-row{align-items:baseline;gap:8px;min-width:0;display:flex}.schedule-cal-popover-row dt{color:var(--muted);flex:0 0 52px;font-size:.72rem}.schedule-cal-popover-row dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}
