:root{--side-w: 264px;--top-h: 64px;--ok: #1e9b6b;--warn: #d18a2a;--err: #c0392b;--info: #2c6e9b;--bg-app: #f5f8f4}body.app{background:var(--bg-app);color:var(--ink);font-family:Assistant,Segoe UI,Heebo,Arial,sans-serif;margin:0}.app-shell{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;background:var(--leaf-darker);color:#e6f4e8;padding:1.1rem .9rem 1rem;display:flex;flex-direction:column;gap:1.2rem;border-inline-end:1px solid rgb(255 255 255 / 6%);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:.7rem;padding:.4rem .5rem 1rem;border-block-end:1px solid rgb(255 255 255 / 8%)}.sidebar-brand img{width:40px;height:40px;object-fit:contain;border-radius:8px}.sidebar-brand strong{color:#fff;display:block;font-weight:900;line-height:1.1;font-size:.98rem}.sidebar-brand small{color:#a8c4b1;font-size:.78rem;font-weight:700}.sidebar-section{display:grid;gap:.15rem}.side-label{color:#87a394;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .7rem .4rem}.side-link{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;border:0;border-radius:8px;background:transparent;color:#d7e5dc;font:inherit;font-weight:700;font-size:.95rem;text-align:start;cursor:pointer;width:100%;transition:background .12s ease,color .12s ease;text-decoration:none;min-height:44px}.side-link:hover{background:#ffffff0f;color:#fff}.side-link[aria-current=page]{background:var(--leaf);color:#fff;box-shadow:0 6px 20px #256f4659}.side-icon{width:18px;height:18px;flex-shrink:0}.side-link .badge{margin-inline-start:auto;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--sun);color:var(--leaf-darker);font-size:.72rem;font-weight:900;display:inline-grid;place-items:center}.sidebar-foot{margin-block-start:auto;display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:10px;background:#ffffff0d;border:1px solid rgb(255 255 255 / 8%)}.user-chip{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.user-chip .avatar{width:36px;height:36px;border-radius:999px;background:var(--leaf);color:#fff;display:grid;place-items:center;font-weight:900;flex-shrink:0;font-size:.85rem}.user-chip .info{min-width:0}.user-chip strong{display:block;color:#fff;font-size:.88rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip small{display:block;color:#a8c4b1;font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-action{border:0;background:transparent;color:#d7e5dc;width:30px;height:30px;border-radius:8px;cursor:pointer;display:grid;place-items:center}.user-chip-action:hover{background:#ffffff14;color:#fff}.app-main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.75rem;height:var(--top-h);padding-inline:clamp(16px,2vw,28px);background:#ffffffe0;backdrop-filter:blur(14px);border-block-end:1px solid var(--line)}.topbar h1{font-size:1.05rem;font-weight:900;color:var(--leaf-dark);margin:0}.icon-btn{position:relative;width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--leaf-dark);cursor:pointer}.icon-btn:hover{background:var(--mint)}.icon-btn .dot-ind{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:999px;background:var(--err);border:2px solid white}.topbar-search{flex:1;max-width:480px;display:flex;align-items:center;gap:.5rem;min-height:38px;padding:0 .65rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.topbar-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.95rem;color:var(--ink)}.topbar-search kbd{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.72rem;color:var(--muted);border:1px solid var(--line);padding:1px 5px;border-radius:4px;background:var(--paper)}.topbar-actions{display:flex;align-items:center;gap:.5rem;margin-inline-start:auto}.lang-pill{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:#fff}.lang-pill button{border:0;background:transparent;min-height:30px;padding:0 .7rem;border-radius:999px;cursor:pointer;font:inherit;font-weight:800;font-size:.85rem;color:var(--leaf-dark)}.lang-pill button[aria-pressed=true]{background:var(--leaf);color:#fff}.view-site-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;background:var(--white, #fff);border:1px solid var(--line, #d9e4dc);border-radius:10px;color:var(--leaf-dark, #173f31);font-size:.85rem;font-weight:700;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .2s ease,color .15s ease;flex-shrink:0;line-height:1}.view-site-btn:hover{background:var(--mint, #e6f4e8);border-color:var(--leaf, #256f46);color:var(--leaf, #256f46);transform:translateY(-1px);box-shadow:0 4px 12px #173f3114}.view-site-btn:focus-visible{outline:2px solid var(--leaf, #256f46);outline-offset:2px}.view-site-btn svg{flex-shrink:0}.view-site-btn-label{white-space:nowrap}@media(max-width:768px){.view-site-btn{padding:0 10px}.view-site-btn-label{display:none}}.app-content{padding:clamp(16px,2.4vw,32px);display:grid;gap:1.25rem}.dview{display:none}.dview.active{display:grid;gap:1.25rem}.page-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-head h2{color:var(--leaf-dark);font-size:clamp(1.4rem,2vw,1.8rem);font-weight:900;margin:0}.page-head p{color:var(--muted);font-weight:600;margin-top:.25rem}.page-head-actions{display:flex;gap:.5rem;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.kpi{display:grid;gap:.4rem;padding:1.1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;inset-block-start:0;inset-inline-end:0;width:50%;height:3px;background:var(--leaf);border-radius:0 0 0 4px}.kpi.is-info:after{background:var(--info)}.kpi.is-warn:after{background:var(--sun)}.kpi-label{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-weight:800;font-size:.85rem}.kpi-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--mint);color:var(--leaf);font-weight:900}.kpi.is-info .kpi-icon{background:#e1eef7;color:var(--info)}.kpi.is-warn .kpi-icon{background:#fbf0d4;color:var(--warn)}.kpi strong{font-size:clamp(1.6rem,2.4vw,2.1rem);color:var(--leaf-dark);font-weight:900;line-height:1}.delta{color:var(--ok);font-weight:800;font-size:.85rem}.delta.is-down{color:var(--err)}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem}.panels .span-2{grid-column:span 2}@media(max-width:980px){.panels .span-2{grid-column:1 / -1}}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);overflow:clip;display:flex;flex-direction:column}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.9rem 1.1rem;border-block-end:1px solid var(--line)}.panel-head h3{margin:0;color:var(--leaf-dark);font-size:1rem;font-weight:900}.panel-head .actions{display:flex;gap:.35rem;flex-wrap:wrap}.panel-body{padding:1.1rem 1.2rem;flex:1}.panel-body.no-pad{padding:0}.chart-area{width:100%;height:240px;display:block}.chart-legend{display:flex;gap:1rem;flex-wrap:wrap;padding:0 1.1rem 1rem;color:var(--muted);font-size:.85rem;font-weight:700}.chart-legend span{display:inline-flex;align-items:center;gap:.4rem}.chart-legend i{width:10px;height:10px;border-radius:3px;background:var(--leaf);display:inline-block}.chart-legend i.alt{background:var(--earth)}.donut-wrap{position:relative;display:grid;place-items:center;padding:.5rem 0 1rem}.donut{width:180px;height:180px}.donut-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--leaf-dark);font-weight:900;font-size:1.6rem;display:grid;place-items:center}.donut-num small{color:var(--muted);font-size:.78rem;font-weight:700}.donut-legend{display:grid;gap:.55rem}.donut-legend>div{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.donut-legend i{width:10px;height:10px;border-radius:3px}.donut-legend strong{margin-inline-start:auto;color:var(--leaf-dark);font-weight:900}.stages{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.stage{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-weight:800;font-size:.88rem}.stage .dot{width:26px;height:26px;border-radius:999px;background:var(--paper);color:var(--muted);border:1px solid var(--line);display:grid;place-items:center;font-size:.78rem;font-weight:900}.stage.is-done .dot{background:var(--leaf);color:#fff;border-color:var(--leaf)}.stage.is-done{color:var(--leaf-dark)}.stage.is-current .dot{background:var(--sun);color:var(--leaf-darker);border-color:var(--sun);box-shadow:0 0 0 4px #f2c94c40}.stage.is-current{color:var(--leaf-dark)}.stage-bar{flex:1;min-width:18px;height:2px;background:var(--line);border-radius:999px}.stage-bar.is-done{background:var(--leaf)}.data-table{width:100%;border-collapse:collapse;font-size:.92rem}.data-table th,.data-table td{padding:.85rem 1.1rem;text-align:start;border-block-end:1px solid var(--line);vertical-align:middle}.data-table th{color:var(--muted);font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:var(--paper)}.data-table tbody tr:hover{background:var(--mint-2)}.data-table tbody tr:last-child td{border-block-end:0}.row-title{display:grid;gap:.1rem}.row-title strong{color:var(--leaf-dark);font-weight:800}.row-title small{color:var(--muted);font-size:.82rem;font-weight:600}.status{display:inline-flex;align-items:center;gap:.35rem;min-height:26px;padding:.1rem .6rem;border-radius:999px;font-size:.78rem;font-weight:800;border:1px solid transparent;white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0}.s-new{background:#e1eef7;color:var(--info)}.s-prog{background:#fbf0d4;color:var(--warn)}.s-hold{background:#f4e6e3;color:var(--err)}.s-done{background:var(--mint);color:var(--leaf)}.s-suspended{background:#f0e6f8;color:#7a3fa0}.subtabs{display:flex;gap:.25rem;flex-wrap:wrap;padding:.25rem;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-sm);width:max-content;max-width:100%}.subtabs button{border:0;background:transparent;padding:.5rem .9rem;border-radius:8px;font:inherit;font-weight:800;font-size:.9rem;color:var(--muted);cursor:pointer;min-height:44px}.subtabs button[aria-pressed=true]{background:var(--leaf);color:#fff}.subtabs button:hover:not([aria-pressed=true]){background:var(--mint);color:var(--leaf-dark)}.subview{display:none}.subview.active{display:grid;gap:1rem}.toolbar-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.toolbar-row .search{flex:1;min-width:200px;display:flex;align-items:center;gap:.5rem;min-height:38px;padding:0 .7rem;border:1px solid var(--line);border-radius:8px;background:#fff}.toolbar-row .search input{flex:1;border:0;outline:0;background:transparent;font:inherit;min-height:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.6rem 1rem;border-radius:8px;border:1px solid transparent;font:inherit;font-weight:800;font-size:.92rem;cursor:pointer;text-decoration:none;transition:background .14s ease,border-color .14s ease,transform .14s ease}.button:not(.secondary):not(.ghost){background:var(--leaf);color:#fff;border-color:var(--leaf)}.button:not(.secondary):not(.ghost):hover{background:var(--leaf-dark);border-color:var(--leaf-dark)}.button.secondary{background:#fff;color:var(--leaf-dark);border-color:var(--line)}.button.secondary:hover{background:var(--mint);border-color:var(--leaf)}.button.ghost{background:transparent;color:var(--leaf-dark);border-color:transparent}.button.ghost:hover{background:var(--mint)}.button.danger-ghost{background:transparent;color:var(--err);border-color:transparent}.button.danger-ghost:hover{background:#fdf0ef;border-color:var(--err)}.chip{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.3rem .75rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font:inherit;font-weight:800;font-size:.85rem;cursor:pointer;white-space:nowrap}.chip:hover{background:var(--mint);color:var(--leaf-dark);border-color:var(--leaf)}.chip.solid{background:var(--leaf);color:#fff;border-color:var(--leaf)}.entry-link{color:var(--leaf);font-weight:800;font-size:.88rem;white-space:nowrap}.entry-link:hover{color:var(--leaf-dark)}button.entry-link{border:0;background:transparent;padding:0;cursor:pointer;font-family:inherit}.entry-link.danger{color:#b42318}.entry-link.danger:hover{color:#7f1d1d}.application-inline-actions{display:flex;gap:.35rem;flex-wrap:wrap}.application-open-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.25rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--leaf-dark)}.application-open-btn:hover{background:var(--mint);border-color:var(--leaf)}.application-details-btn{margin-block-end:.35rem}.application-actions-cell{display:grid;gap:.35rem;align-items:center}.application-sheet{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1rem;background:#0c201694;backdrop-filter:blur(8px)}.application-sheet[hidden]{display:none}.application-sheet-panel{width:min(720px,100%);max-height:min(860px,calc(100dvh - 2rem));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px #0c201647;overflow:hidden}.application-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-block-end:1px solid var(--line);background:var(--paper)}.application-sheet-head small{display:block;color:var(--muted);font-size:.78rem;font-weight:900;margin-block-end:.2rem}.application-sheet-head h3{margin:0;color:var(--leaf-dark);font-size:1.2rem;font-weight:900}.application-sheet-close{flex-shrink:0}.application-sheet-body{padding:1rem 1.1rem;overflow:auto;-webkit-overflow-scrolling:touch}.application-detail-status{margin-block-end:.85rem}.application-logo-preview{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin-block-end:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.application-logo-preview img{width:76px;height:76px;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#fff;padding:.35rem}.application-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.application-field{display:grid;gap:.25rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--paper);min-width:0}.application-field span{color:var(--muted);font-size:.78rem;font-weight:900}.application-field strong{color:var(--leaf-dark);font-size:.95rem;line-height:1.45;font-weight:800;overflow-wrap:anywhere;white-space:pre-wrap}.application-sheet-actions{display:flex;justify-content:flex-start;gap:.55rem;flex-wrap:wrap;padding:.9rem 1.1rem;border-block-start:1px solid var(--line);background:#fff}.profile-logo-editor{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.profile-logo-preview{width:96px;height:96px;display:grid;place-items:center;border-radius:16px;border:1px solid var(--line);background:#fff;overflow:hidden;color:var(--leaf-dark);font-weight:900;font-size:1.25rem}.profile-logo-preview img{width:100%;height:100%;object-fit:contain;padding:.45rem}.profile-logo-controls{display:grid;gap:.45rem}.profile-logo-controls label{font-weight:900;color:var(--leaf-dark)}.profile-logo-controls small{color:var(--muted);font-size:.8rem;font-weight:700}.supplier-gallery-panel .panel-body{display:grid;gap:1rem}.gallery-uploader{display:grid;gap:.75rem}.gallery-uploader input[type=file]{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.gallery-drop{display:grid;gap:.25rem;place-items:center;min-height:142px;padding:1rem;text-align:center;border:1px dashed color-mix(in srgb,var(--leaf) 38%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--mint) 42%,white);color:var(--leaf-dark);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.gallery-drop:hover,.gallery-drop:focus-within{border-color:var(--leaf);background:var(--mint);transform:translateY(-1px)}.gallery-drop-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--leaf);color:#fff;font-size:1.45rem;font-weight:900;line-height:1}.gallery-drop strong{font-size:.98rem;font-weight:900}.gallery-drop small,.gallery-upload-actions span{color:var(--muted);font-size:.8rem;font-weight:700}.gallery-upload-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.supplier-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.65rem}.gallery-thumb{position:relative;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery-remove{position:absolute;top:.4rem;inset-inline-start:.4rem;display:grid;place-items:center;min-width:34px;min-height:34px;border:0;border-radius:999px;background:#082819c7;color:#fff;font:inherit;font-size:1.2rem;font-weight:900;line-height:1;cursor:pointer}.gallery-remove:hover{background:#b42318}.gallery-remove:disabled{opacity:.55;cursor:progress}.gallery-empty{margin:0;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--muted);font-size:.88rem;font-weight:750;text-align:center}.danger-action{color:#b42318!important;border-color:#fecaca!important}.danger-action:hover{background:#fef2f2!important;border-color:#fca5a5!important}body.application-sheet-open{overflow:hidden}.form{display:grid;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.88rem;font-weight:850;color:var(--leaf-dark)}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:8px;padding:.72rem .85rem;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);min-height:44px}.field textarea{min-height:80px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px #256f4624}.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1rem}.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm)}.supplier-analytics-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.65rem;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--mint) 38%,white)}.supplier-analytics-mini span{display:flex;align-items:center;justify-content:space-between;gap:.45rem;min-height:34px;padding:.35rem .55rem;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:999px;background:#fff;color:var(--muted);font-size:.78rem;font-weight:800;white-space:nowrap}.supplier-analytics-mini strong{color:var(--leaf-dark);font-size:.9rem;font-weight:950}@media(max-width:520px){.supplier-analytics-mini{grid-template-columns:1fr}}.empty{display:grid;gap:.5rem;place-items:center;padding:3rem 1rem;text-align:center}.empty .ill{width:84px;height:84px;border-radius:999px;background:var(--mint);color:var(--leaf);display:grid;place-items:center;margin-block-end:.5rem;font-size:2rem}.empty strong{color:var(--leaf-dark);font-size:1.15rem}.empty p{color:var(--muted);max-width:36ch}.empty .button{margin-top:.5rem}.split-2{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:1rem}@media(max-width:900px){.split-2{grid-template-columns:1fr}}.msg-list{display:grid}.msg-item{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:start;padding:.9rem 1.1rem;border-block-end:1px solid var(--line);cursor:pointer}.msg-item:hover{background:var(--mint-2)}.msg-item.unread{background:color-mix(in srgb,var(--mint) 50%,white)}.msg-item.unread strong:after{content:"";display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--leaf);margin-inline-start:.4rem;vertical-align:1px}.msg-item .avatar{width:38px;height:38px;border-radius:999px;background:var(--leaf);color:#fff;display:grid;place-items:center;font-weight:900;font-size:.85rem}.msg-item .body strong{color:var(--leaf-dark);display:block;font-size:.92rem}.msg-item .body p{color:var(--muted);font-size:.88rem;margin:.2rem 0 0;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.msg-item .time{color:var(--muted);font-size:.78rem;font-weight:700;flex-shrink:0}.file-list{display:grid;gap:.5rem}.file-row{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:#fff}.file-row .fi{width:40px;height:40px;border-radius:8px;background:var(--mint);color:var(--leaf);display:grid;place-items:center;font-size:1.2rem}.file-row .meta strong{display:block;color:var(--leaf-dark);font-weight:800}.file-row .meta small{color:var(--muted);font-size:.82rem;font-weight:600}.file-row .actions{display:flex;gap:.3rem}.invoice-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.2rem;border-block-end:1px solid var(--line)}.invoice-card:last-child{border-block-end:0}.invoice-card strong{color:var(--leaf-dark);font-weight:800}.invoice-card small{color:var(--muted);font-size:.82rem;font-weight:600}.invoice-amt{color:var(--leaf-dark);font-weight:900;font-size:1.05rem;margin-block-end:.3rem}.bar-list{display:grid;gap:.6rem}.bar-list .row{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;align-items:center}.bar-list .label{color:var(--leaf-dark);font-weight:800;font-size:.92rem}.bar-list .num{color:var(--leaf-dark);font-weight:900}.bar-list .track{grid-column:1 / -1;height:8px;background:var(--mint);border-radius:999px;overflow:hidden}.bar-list .fill{height:100%;background:var(--leaf);border-radius:999px}.role-pill{background:var(--mint);color:var(--leaf-dark);padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:800}.role-pill.admin{background:var(--leaf-dark);color:#fff}.role-pill.provider{background:#fbf0d4;color:var(--warn)}.split-3{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:1rem}@media(max-width:980px){.split-3{grid-template-columns:1fr}}.sidebar-close-btn{display:none;position:absolute;top:.85rem;inset-inline-end:.85rem;width:34px;height:34px;border:0;border-radius:8px;background:#ffffff1f;color:#e6f4e8;cursor:pointer;place-items:center}.sidebar-close-btn:hover{background:#ffffff38}.menu-toggle{display:none}@media(max-width:1024px){.app-shell{display:block;width:100%;max-width:100vw;overflow-x:hidden}.app-main{width:100%;max-width:100%;overflow-x:hidden}.sidebar{position:fixed;top:0;bottom:0;inset-inline-start:unset;width:min(var(--side-w),82vw);height:100%;z-index:30;transition:transform .25s cubic-bezier(.4,0,.2,1);overflow-y:auto}html[dir=rtl] .sidebar{right:0;left:unset;transform:translate(110%)}html[dir=rtl] .sidebar.open{transform:translate(0)}html[dir=ltr] .sidebar{left:0;right:unset;transform:translate(-110%)}html[dir=ltr] .sidebar.open{transform:translate(0)}.sidebar-close-btn{display:grid}.sidebar-brand{padding-inline-end:3rem}.icon-btn.menu-toggle{display:inline-grid}.topbar-search{display:none}.app-content{padding:clamp(12px,4vw,20px)}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.panels{grid-template-columns:1fr}.panels .span-2{grid-column:1}.split-2,.split-3{grid-template-columns:1fr}.page-head{flex-direction:column;align-items:flex-start;gap:.75rem}.page-head-actions{width:100%;flex-wrap:wrap}.chart-area{width:100%;max-width:100%;overflow:hidden}.panel{overflow:hidden}.panel-body,.panel-body.no-pad{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:420px}.data-table th,.data-table td{padding:.65rem .85rem}.subtabs{width:100%;max-width:100%;overflow-x:auto;flex-wrap:nowrap}.toolbar-row{flex-direction:column;align-items:stretch}.toolbar-row .search{min-width:0;width:100%}.invoice-card{flex-direction:column;gap:.5rem}}@media(max-width:500px){.kpi-grid{grid-template-columns:1fr}.page-head-actions .button{flex:1;justify-content:center}.form-row{grid-template-columns:1fr}.topbar{gap:.4rem;padding-inline:12px}.topbar h1{font-size:.95rem}}.sidebar-overlay{display:none;position:fixed;inset:0;z-index:29;background:#0000007f;cursor:pointer}.sidebar-overlay.visible{display:block}body.sidebar-open{overflow:hidden}@media(max-width:768px){[data-view=articles] .row-title small{display:none}[data-view=articles] .data-table th:nth-child(3),[data-view=articles] .data-table td:nth-child(3),[data-view=articles] .data-table th:nth-child(4),[data-view=articles] .data-table td:nth-child(4){display:none}[data-view=articles] .data-table{min-width:0}[data-view=articles] .data-table td:first-child{max-width:55vw}[data-view=projects] .data-table th:nth-child(1),[data-view=projects] .data-table td:nth-child(1),[data-view=projects] .data-table th:nth-child(3),[data-view=projects] .data-table td:nth-child(3),[data-view=projects] .data-table th:nth-child(4),[data-view=projects] .data-table td:nth-child(4),[data-view=projects] .data-table th:nth-child(6),[data-view=projects] .data-table td:nth-child(6),[data-view=projects] .data-table th:nth-child(7),[data-view=projects] .data-table td:nth-child(7){display:none}[data-view=projects] .data-table{min-width:0}[data-view=overview] .row-title small{display:none}[data-view=overview] .data-table th:nth-child(2),[data-view=overview] .data-table td:nth-child(2),[data-view=overview] .data-table th:nth-child(4),[data-view=overview] .data-table td:nth-child(4),[data-view=overview] .data-table th:nth-child(6),[data-view=overview] .data-table td:nth-child(6),[data-view=overview] .data-table th:nth-child(7),[data-view=overview] .data-table td:nth-child(7){display:none}[data-view=overview] .data-table{min-width:0}[data-view=requests] .row-title small{display:none}[data-view=requests] .data-table th:nth-child(2),[data-view=requests] .data-table td:nth-child(2),[data-view=requests] .data-table th:nth-child(4),[data-view=requests] .data-table td:nth-child(4),[data-view=requests] .data-table th:nth-child(6),[data-view=requests] .data-table td:nth-child(6){display:none}[data-view=requests] .data-table{min-width:0}[data-view=requests] .application-table,[data-view=requests] .application-table thead,[data-view=requests] .application-table tbody,[data-view=requests] .application-table tr,[data-view=requests] .application-table td{display:block;min-width:0}[data-view=requests] .application-table thead{display:none}[data-view=requests] .application-table tbody{display:grid;gap:.7rem;padding:.7rem}[data-view=requests] .application-table tr{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.6rem .75rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}[data-view=requests] .application-table td{border:0;padding:0}[data-view=requests] .application-table td:not(.application-open-cell):not(.application-main-cell):not(.application-status-cell){display:none}[data-view=requests] .application-table .application-open-cell{display:block;grid-row:1 / span 2}[data-view=requests] .application-table td.application-main-cell{display:block;color:var(--leaf-dark);font-size:.98rem;font-weight:900;min-width:0}[data-view=requests] .application-table .application-main-cell strong,[data-view=requests] .application-table .application-main-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=requests] .application-table .application-main-cell small{margin-block-start:.18rem;color:var(--muted);font-size:.78rem;font-weight:800}[data-view=requests] .application-table .application-status-cell{display:block}[data-view=requests] .application-table .application-open-btn{min-width:56px;min-height:42px;background:var(--leaf);border-color:var(--leaf);color:#fff}.application-details-btn{margin-block-end:0}.application-sheet{padding:0;align-items:stretch;justify-items:stretch}.application-sheet-panel{width:100%;height:100dvh;max-height:none;border:0;border-radius:0}.application-sheet-head,.application-sheet-body,.application-sheet-actions{padding-inline:1rem}.application-detail-grid{grid-template-columns:1fr}.application-sheet-actions{display:grid;grid-template-columns:1fr}.application-sheet-actions .button{width:100%}[data-view=invoices] .data-table th:nth-child(3),[data-view=invoices] .data-table td:nth-child(3),[data-view=invoices] .data-table th:nth-child(5),[data-view=invoices] .data-table td:nth-child(5){display:none}[data-view=invoices] .data-table{min-width:0}[data-view=providers] .data-table th:nth-child(4),[data-view=providers] .data-table td:nth-child(4),[data-view=providers] .data-table th:nth-child(5),[data-view=providers] .data-table td:nth-child(5){display:none}[data-view=providers] .data-table{min-width:0}.data-table .chip{padding:.2rem .5rem;font-size:.78rem;min-height:0}}[dir=ltr] .topbar h1{margin-inline-start:.5rem}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}@media(max-width:900px){.login-shell{grid-template-columns:1fr}}.login-art{position:relative;background:radial-gradient(circle at 80% 20%,rgb(47 138 85 / .45),transparent 60%),linear-gradient(135deg,var(--leaf-darker),var(--leaf-dark) 60%,var(--leaf));color:#fff;padding:3rem;display:grid;align-content:end;gap:1rem;overflow:hidden;order:2}.login-art:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'><g fill='none' stroke='%23ffffff' stroke-width='1' opacity='0.08'><circle cx='300' cy='300' r='80'/><circle cx='300' cy='300' r='160'/><circle cx='300' cy='300' r='240'/></g></svg>") no-repeat center / 700px;opacity:.6}.login-art h2{color:#fff;font-size:clamp(2rem,4vw,3rem);position:relative}.login-art p{position:relative;max-width:38ch;color:#d7e5dc;font-size:1.05rem}.login-art .login-art-features{position:relative;display:flex;gap:1.5rem;flex-wrap:wrap;color:#bce3c2;font-weight:800;font-size:.92rem;margin-top:1rem}.login-form-wrap{display:grid;place-items:center;padding:2rem;background:var(--paper)}.login-card{width:100%;max-width:420px;display:grid;gap:1.2rem}.login-card .brand-row{display:flex;align-items:center;gap:.7rem}.login-card .brand-row img{width:48px;height:48px;border-radius:8px}.login-card h1{font-size:clamp(1.6rem,3vw,2.2rem);color:var(--leaf-dark);margin:0}.login-tabs{display:flex;gap:.25rem;padding:4px;border:1px solid var(--line);border-radius:999px;background:#fff}.login-tabs button{flex:1;border:0;background:transparent;padding:.55rem .8rem;border-radius:999px;font:inherit;font-weight:800;font-size:.9rem;color:var(--muted);cursor:pointer;min-height:44px}.login-tabs button[aria-pressed=true]{background:var(--leaf);color:#fff}.toast{position:fixed;bottom:1.5rem;inset-inline-start:1.5rem;z-index:9999;padding:.75rem 1.25rem;border-radius:8px;font-weight:700;font-size:.9rem;background:var(--leaf-dark);color:#fff;transform:translateY(100px);opacity:0;transition:transform .26s ease,opacity .26s ease;box-shadow:0 8px 24px #00000040}.toast.show{transform:translateY(0);opacity:1}.toast.toast-error{background:var(--err)}dialog{border:none;border-radius:14px;padding:0;max-width:480px;width:90%;box-shadow:0 24px 72px #0000003d;position:fixed;inset:0;margin:auto;height:fit-content}dialog::backdrop{background:#00000073;position:fixed;inset:0}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line)}.dialog-head h3{margin:0;font-size:1.1rem;color:var(--leaf-dark);font-weight:900}.dialog-close{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:1.2rem;line-height:1;width:32px;height:32px;border-radius:6px;display:grid;place-items:center}.dialog-close:hover{background:var(--mint);color:var(--leaf-dark)}.dialog-body{padding:1.5rem;display:grid;gap:1rem;max-height:62vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.dialog-foot{padding:1rem 1.5rem;display:flex;gap:.5rem;justify-content:flex-end;border-top:1px solid var(--line)}@media(max-width:500px){dialog{width:calc(100vw - 20px);border-radius:10px}.dialog-body{padding:1rem;max-height:58dvh}.dialog-head,.dialog-foot{padding:.9rem 1rem}}
