:root{--red:#e31e24;--red-dark:#b5161b;--red-soft:#fdecec;--black:#0f0f0f;--frame:#f2f1ed;--sheet:#fff;--raised:#f7f6f3;--active:#e7e5df;--hover:#f4f3ef;--sand:#edebe6;--paper:var(--frame);--white:#fff;--line:#e6e4de;--rule:#efeee9;--line-2:#d6d3cb;--control:#cfccc4;--ink:#141414;--gray-700:#3b3b3b;--gray-600:#5f5e5a;--gray-500:#7d7b76;--gray-300:#b9b6ae;--green:#1e7b4f;--green-soft:#e3f5ea;--green-ink:#0f4a2d;--yellow:#d99a12;--yellow-soft:#fdf3dc;--amber-ink:#7a4a00;--neg-soft:#fdeceb;--neg-ink:#8a1c1f;--blue:#1d5fbf;--blue-soft:#e8effb;--blue-ink:#173f7a;--folder:#e1a72e;--r-xs:4px;--r-sm:6px;--r:8px;--r-lg:12px;--r-sheet:14px;--shadow-float:0 12px 32px #14120e29, 0 2px 6px #14120e0f;--font-head:"BDO Grotesk", "Inter", Arial, sans-serif;--font:"Inter", Arial, sans-serif;--fs:14px;--row:38px;--topbar:56px;--sidebar:268px;--ease:cubic-bezier(.2, .7, .2, 1)}html.large-text{--fs:16.5px;--row:46px}html.high-contrast{--gray-600:#2b2b2b;--gray-500:#444;--line:#a3a09a;--rule:#c9c6bf;--line-2:#807d77;--frame:#e6e4de}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--fs);color:var(--ink);background:var(--frame);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-feature-settings:"cv11", "ss01";margin:0;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:600}h1{font-size:1.6em;line-height:1.15}h2{font-size:1.28em;line-height:1.2}h3{font-size:1.04em;line-height:1.3}.eyebrow{font-family:var(--font);letter-spacing:0;text-transform:none;color:var(--gray-600);font-size:.93em;font-weight:400}.muted{color:var(--gray-600)}.small{font-size:.86em}.nowrap{white-space:nowrap}.mono{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:3px}::selection{background:#e31e242e}code{background:var(--raised);border-radius:var(--r-xs);padding:1px 5px;font-size:.9em}.btn{border-radius:var(--r-sm);border:1px solid var(--control);background:var(--sheet);min-height:36px;color:var(--ink);font-family:var(--font);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:0 14px;font-size:.95em;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex}.btn:hover{background:var(--hover);border-color:var(--gray-300)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--black);border-color:var(--black);color:#fff}.btn.primary:hover{background:#2a2a2a;border-color:#2a2a2a}.btn.red{background:var(--red);border-color:var(--red);color:#fff}.btn.red:hover{background:var(--red-dark);border-color:var(--red-dark)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--hover)}.btn.sm{gap:6px;min-height:30px;padding:0 10px;font-size:.88em}.btn.lg{min-height:46px;padding:0 20px;font-size:1em}.btn.block{justify-content:center;width:100%}.btn:disabled{opacity:.42;cursor:not-allowed}.btn svg{flex:none}.icon-btn{border-radius:var(--r-sm);cursor:pointer;width:34px;height:34px;color:var(--gray-700);background:0 0;border:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:relative}.icon-btn:hover{background:var(--active);color:var(--ink)}.icon-btn:disabled{opacity:.32;cursor:default;background:0 0}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field>label,.label{color:var(--ink);font-size:.88em;font-weight:500}.input,.select,.textarea{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--sheet);outline:none;width:100%;min-height:38px;padding:8px 11px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;min-height:92px;line-height:1.5}.input:hover,.select:hover,.textarea:hover{border-color:var(--gray-300)}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px #14141412}.hint{color:var(--gray-600);font-size:.84em}.error-text{color:var(--neg-ink);font-size:.9em}.row{align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:0 16px;display:grid}.spacer{flex:1}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:17px;height:17px;accent-color:var(--black)}.badge{white-space:nowrap;background:var(--active);height:22px;color:var(--gray-700);border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 8px;font-size:.8em;font-weight:500;display:inline-flex}.badge.pending{background:var(--yellow-soft);color:var(--amber-ink)}.badge.approved{background:var(--green-soft);color:var(--green-ink)}.badge.rejected,.badge.red{background:var(--neg-soft);color:var(--neg-ink)}.badge.blue{background:var(--blue-soft);color:var(--blue-ink)}.badge.dark{background:var(--ink);color:#fff;border-radius:var(--r-xs);font-variant-numeric:tabular-nums}.badge.outline{box-shadow:inset 0 0 0 1px var(--line-2);background:0 0}.count{background:var(--red);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.74em;font-weight:600;display:inline-flex}.dot{background:var(--yellow);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.status-pill{white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;height:22px;padding:0 9px;font-size:.8em;font-weight:500;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.st-akquise,.st-angebot{background:var(--active);color:var(--gray-700)}.st-beauftragt{background:var(--blue-soft);color:var(--blue-ink)}.st-in_ausfuehrung{background:var(--green-soft);color:var(--green-ink)}.st-abnahme{background:var(--yellow-soft);color:var(--amber-ink)}.st-gewaehrleistung,.st-abgeschlossen,.st-verloren{background:var(--raised);color:var(--gray-600);box-shadow:inset 0 0 0 1px var(--line)}.card{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r)}.card-pad{padding:18px 20px}.card-head{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:14px 18px;display:flex}.card-head h3{font-family:var(--font);letter-spacing:0;font-size:1em;font-weight:600}.card-head svg{color:var(--gray-500)}.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);grid-template-rows:var(--topbar) minmax(0, 1fr);background:var(--frame);height:100%;display:grid}.topbar{z-index:30;grid-area:1/2;align-items:center;gap:10px;padding:0 16px 0 8px;display:flex;position:relative}.topbar .brand{display:none}.sb-brand{height:var(--topbar);color:var(--ink);flex:none;align-items:center;gap:10px;padding:0 14px;text-decoration:none;display:flex}.sb-brand .wm{font-family:var(--font-head);letter-spacing:.02em;font-size:1.12em;font-weight:700;line-height:1}.sb-brand .wm small{font-family:var(--font);letter-spacing:0;color:var(--gray-600);margin-top:3px;font-size:.66em;font-weight:500;display:block}.global-search{flex:1;max-width:620px;margin:0 auto;position:relative}.global-search input{border-radius:var(--r);border:1px solid var(--line);background:var(--sheet);width:100%;height:38px;color:var(--ink);outline:none;padding:0 84px 0 40px;transition:border-color .12s,box-shadow .12s}.global-search input::placeholder{color:var(--gray-500)}.global-search input:hover{border-color:var(--line-2)}.global-search input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #14141412}.global-search .si{color:var(--gray-500);pointer-events:none;position:absolute;top:10px;left:13px}.global-search kbd{font-family:var(--font);color:var(--gray-600);background:var(--raised);border:1px solid var(--line);border-radius:var(--r-xs);pointer-events:none;padding:1px 6px;font-size:.74em;position:absolute;top:8px;right:9px}.topbar .badge-num{background:var(--red);color:#fff;min-width:17px;height:17px;box-shadow:0 0 0 2px var(--frame);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:3px;right:2px}.avatar{letter-spacing:.01em;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:inline-flex}.avatar.sm{width:24px;height:24px;font-size:10px}.avatar.lg{width:48px;height:48px;font-size:16px}.user-btn{color:var(--ink);cursor:pointer;border-radius:var(--r);background:0 0;border:0;align-items:center;gap:9px;padding:4px 8px 4px 4px;transition:background .12s;display:flex}.user-btn:hover{background:var(--active)}.user-btn .meta{text-align:left;line-height:1.2}.user-btn .meta small{color:var(--gray-600);font-size:.8em}.actas-banner{background:var(--yellow-soft);color:var(--amber-ink);z-index:20;border-bottom:1px solid #f1dfb0;align-items:center;gap:10px;padding:8px 16px;font-size:.92em;font-weight:500;display:flex;position:sticky;top:0}.body{display:contents}.main{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-sheet);grid-area:2/2;min-width:0;min-height:0;margin:0 8px 8px 0;position:relative;overflow:auto}.page{max-width:1440px;padding:28px 32px 64px}.page-head{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;display:flex}.page-head>div:first-child{flex-direction:column;gap:4px;display:flex}.page-head>div:first-child>.eyebrow{order:2}.page-head>div:first-child>h1,.page-head>div:first-child>h2{order:1}.page-head>div:first-child>p,.page-head>div:first-child>div:not(.eyebrow){order:3}.page-head h1{font-size:1.72em}.sidebar{background:var(--frame);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex-direction:column;grid-area:1/1/3;min-height:0;padding:0 10px 32px;display:flex;overflow:auto}.sidebar>*{flex-shrink:0}.sidebar>.sb-brand{margin:0 -10px 4px;padding:0 18px}.nav-section{color:var(--gray-600);align-items:center;gap:6px;margin:20px 8px 6px;font-size:.86em;display:flex}.nav-section svg{display:none}.nav-section .eyebrow{color:var(--gray-600);font-size:1em;font-weight:500}.nav-section select{font-size:1em!important}.nav-item{border-radius:var(--r-sm);height:34px;color:var(--gray-700);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:0 10px;font-weight:450;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item svg{color:var(--gray-500);flex:none}.nav-item:hover{background:var(--active);color:var(--ink)}.nav-item.active{background:var(--active);color:var(--ink);font-weight:600}.nav-item.active svg{color:var(--ink)}.nav-item .count{margin-left:auto}.tree{font-size:.95em}.tree-row{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;height:30px;color:var(--gray-700);align-items:center;gap:5px;padding-right:8px;transition:background .1s;display:flex;position:relative}.tree-row:hover{background:var(--active);color:var(--ink)}.tree-row.active{background:var(--active);color:var(--ink);font-weight:600}.tree-row.drop{background:var(--red-soft);box-shadow:inset 0 0 0 1px var(--red)}.tree-row .tw{width:18px;height:18px;color:var(--gray-500);border-radius:var(--r-xs);flex:none;justify-content:center;align-items:center;display:inline-flex}.tree-row .tw:hover{background:#0000000f}.tree-row .tl{text-overflow:ellipsis;overflow:hidden}.tree-row .num{font-variant-numeric:tabular-nums;color:var(--gray-500);font-size:.92em;font-weight:500}.explorer{background:var(--sheet);grid-template-rows:auto auto auto minmax(0,1fr) auto;height:100%;min-height:0;display:grid}.toolbar{background:var(--sheet);flex-wrap:wrap;align-items:center;gap:2px;padding:8px 14px;display:flex}.toolbar .sep{background:var(--line);width:1px;height:22px;margin:0 6px}.tb-btn{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;height:34px;color:var(--gray-700);background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-size:.94em;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.tb-btn:hover:not(:disabled){background:var(--active);color:var(--ink)}.tb-btn:disabled{opacity:.35;cursor:default}.tb-btn.primary{background:var(--black);color:#fff;margin-right:4px;padding:0 14px}.tb-btn.primary:hover:not(:disabled){color:#fff;background:#2a2a2a}.addressbar{border-bottom:1px solid var(--line);background:var(--sheet);align-items:center;gap:8px;padding:0 14px 10px;display:flex}.crumbs{border-radius:var(--r-sm);background:var(--raised);cursor:text;min-height:36px;box-shadow:inset 0 0 0 1px var(--rule);flex:1;align-items:center;padding:0 6px;display:flex;overflow:hidden}.crumbs .c{white-space:nowrap;border-radius:var(--r-xs);cursor:pointer;color:var(--gray-600);text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:2px;max-width:340px;padding:4px 7px;display:inline-flex;overflow:hidden}.crumbs .c:hover{background:var(--active);color:var(--ink)}.crumbs .c.last{color:var(--ink);font-weight:600}.crumbs .chev{color:var(--gray-300);flex:none}.crumbs input{background:0 0;border:0;outline:none;width:100%;height:34px;padding:0 4px}.folder-search{width:270px;position:relative}.folder-search input{border-radius:var(--r-sm);background:var(--raised);width:100%;height:36px;box-shadow:inset 0 0 0 1px var(--rule);border:0;outline:none;padding:0 10px 0 32px;transition:box-shadow .12s,background .12s}.folder-search input:focus{background:var(--sheet);box-shadow:inset 0 0 0 1px var(--ink), 0 0 0 3px #14141412}.folder-search svg{color:var(--gray-500);position:absolute;top:10px;left:10px}.ex-body{grid-template-columns:minmax(0,1fr) auto;min-height:0;display:grid}.ex-list{outline:none;min-height:0;position:relative;overflow:auto}.ex-list.dragover:after{content:"Loslassen zum Hochladen";border:2px dashed var(--red);border-radius:var(--r-lg);font-family:var(--font-head);color:var(--red-dark);pointer-events:none;z-index:5;background:#e31e240a;justify-content:center;align-items:center;font-size:1.15em;font-weight:600;display:flex;position:absolute;inset:10px}table.files{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}table.files th{background:var(--sheet);z-index:2;text-align:left;color:var(--gray-600);border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;height:36px;padding:0 12px;font-size:.84em;font-weight:500;position:sticky;top:0}table.files th:first-child{padding-left:20px}table.files th:hover{color:var(--ink)}table.files th .rs{cursor:col-resize;border-right:1px solid var(--rule);width:7px;position:absolute;top:10px;bottom:10px;right:0}table.files th .rs:hover{border-right-color:var(--gray-300)}table.files td{height:var(--row);border-bottom:1px solid var(--rule);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;padding:0 12px;overflow:hidden}table.files td:first-child{padding-left:20px}table.files tr.item{cursor:default}table.files tr.item:hover td{background:var(--hover)}table.files tr.item.sel td{background:var(--active)}table.files tr.item.sel td:first-child{box-shadow:inset 2px 0 0 var(--ink)}table.files tr.item.drop td{background:var(--red-soft)}.namecell{align-items:center;gap:10px;min-width:0;display:flex}.namecell .nm{text-overflow:ellipsis;font-weight:450;overflow:hidden}.namecell input{border:1px solid var(--ink);border-radius:var(--r-xs);-webkit-user-select:text;user-select:text;outline:none;flex:1;height:28px;padding:0 6px;box-shadow:0 0 0 3px #14141412}.fav-star{color:var(--yellow);flex:none}.tiles{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;padding:16px 20px;display:grid}.tiles.large{grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:16px}.tile{border-radius:var(--r);text-align:center;cursor:default;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;transition:background .12s;display:flex;position:relative}.tiles.large .tile{text-align:left;align-items:stretch;padding:0 0 8px}.tiles.large .tile>svg{align-self:center;margin-top:28px;margin-bottom:18px}.tile:hover{background:var(--hover)}.tile.sel{background:var(--active);box-shadow:inset 0 0 0 2px var(--ink)}.tile.drop{background:var(--red-soft)}.tile .tn{word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88em;line-height:1.35;display:-webkit-box;overflow:hidden}.tiles.large .tile .tn{padding:0 4px}.tile .thumb{aspect-ratio:4/3;border-radius:var(--r-sm);object-fit:cover;background:var(--sand);width:100%}.tile .tbadge{position:absolute;top:8px;right:8px}.statusbar{border-top:1px solid var(--line);height:32px;color:var(--gray-600);background:var(--sheet);font-variant-numeric:tabular-nums;align-items:center;gap:18px;padding:0 20px;font-size:.82em;display:flex}.empty{text-align:center;color:var(--gray-600);padding:56px 20px}.empty>svg{color:var(--gray-300);margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:6px;font-size:1.1em}.details{border-left:1px solid var(--line);background:var(--sheet);flex-direction:column;width:400px;min-height:0;display:flex;position:relative}.details-head{padding:16px 18px 12px}.details-head h3{overflow-wrap:anywhere;font-size:1.06em;line-height:1.3}.details-scroll{flex:1;min-height:0;overflow:auto}.preview-box{background:var(--raised);border-radius:var(--r);height:290px;box-shadow:inset 0 0 0 1px var(--rule);justify-content:center;align-items:center;margin:0 18px;display:flex;position:relative;overflow:hidden}.preview-box img{object-fit:contain;max-width:100%;max-height:100%}.preview-box iframe,.viewer iframe{background:#fff;border:0;width:100%;height:100%}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;padding:0 12px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--gray-600);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:11px 8px;font-weight:500;transition:color .12s,box-shadow .12s;display:inline-flex;box-shadow:inset 0 -2px #0000}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--red)}.props{grid-template-columns:116px minmax(0,1fr);gap:9px 12px;margin:0;padding:16px 18px;font-size:.92em;display:grid}.props dt{color:var(--gray-600)}.props dd{word-break:break-word;margin:0}.section-pad{padding:16px 18px}.timeline{margin:0;padding:0 0 0 4px;list-style:none}.timeline li{padding:0 0 16px 24px;position:relative}.timeline li:before{content:"";background:var(--line);width:1px;position:absolute;top:8px;bottom:-4px;left:5px}.timeline li:last-child:before{display:none}.timeline li .tdot{background:var(--sheet);width:11px;height:11px;box-shadow:inset 0 0 0 2px var(--gray-300);border-radius:50%;position:absolute;top:4px;left:0}.timeline li.approved .tdot{background:var(--green);box-shadow:none}.timeline li.rejected .tdot{background:var(--red);box-shadow:none}.timeline li.open .tdot{background:var(--yellow);box-shadow:0 0 0 3px var(--yellow-soft)}.vlist{flex-direction:column;display:flex}.vrow{border-bottom:1px solid var(--rule);align-items:flex-start;gap:12px;padding:12px 18px;display:flex}.vrow.current{background:var(--raised)}.rev-pill{border-radius:var(--r-sm);background:var(--ink);color:#fff;min-width:34px;height:34px;font-family:var(--font-head);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.rev-pill.old{background:var(--active);color:var(--gray-600)}.superseded-banner{background:var(--red);color:#fff;align-items:center;gap:8px;padding:9px 16px;font-weight:600;display:flex}.menu{z-index:1000;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);min-width:230px;box-shadow:var(--shadow-float);animation:pop .12s var(--ease);padding:6px;font-size:.94em;position:fixed}.menu button,.menu a{border-radius:var(--r-sm);cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:7px 10px;text-decoration:none;display:flex}.menu button svg{color:var(--gray-600);flex:none}.menu button:hover:not(:disabled),.menu a:hover{background:var(--active)}.menu button:disabled{opacity:.38;cursor:default}.menu button.danger,.menu button.danger svg{color:var(--red-dark)}.menu .kbd{color:var(--gray-500);margin-left:auto;padding-left:12px;font-size:.82em}.menu hr{border:0;border-top:1px solid var(--rule);margin:5px 4px}.menu .mh{padding:6px 10px 4px;font-size:.85em}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.overlay{z-index:900;background:#12100c6b;justify-content:center;align-items:flex-start;padding:7vh 16px 16px;animation:.14s ease-out fade;display:flex;position:fixed;inset:0;overflow:auto}@keyframes fade{0%{opacity:0}}.dialog{background:var(--sheet);border-radius:var(--r-sheet);box-shadow:var(--shadow-float);width:100%;max-width:540px;max-height:86vh;animation:rise .18s var(--ease);flex-direction:column;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.dialog.wide{max-width:860px}.dialog.xwide{max-width:1100px}.dialog-head{align-items:center;gap:10px;padding:18px 22px 12px;display:flex}.dialog-head h2{font-size:1.18em!important}.dialog-body{padding:8px 22px 20px;overflow:auto}.dialog-foot{border-top:1px solid var(--line);background:var(--raised);border-radius:0 0 var(--r-sheet) var(--r-sheet);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}.viewer{z-index:950;background:#18171a;grid-template-rows:auto auto minmax(0,1fr);animation:.14s ease-out fade;display:grid;position:fixed;inset:0}.viewer-head{background:var(--black);color:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex}.viewer-head .icon-btn{color:#ddd}.viewer-head .icon-btn:hover{color:#fff;background:#ffffff1f}.viewer-body{justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.viewer-body img{max-width:100%;max-height:100%}.toasts{z-index:2000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--black);color:#fff;border-radius:var(--r);box-shadow:var(--shadow-float);pointer-events:auto;max-width:min(560px,92vw);animation:rise .18s var(--ease);align-items:center;gap:12px;padding:11px 16px;display:flex}.toast.error{background:var(--red-dark)}.toast a,.toast button{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:#ffffff1f;border:0;padding:3px 8px;font-weight:600}.uploads{z-index:800;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);width:380px;box-shadow:var(--shadow-float);position:fixed;bottom:20px;right:20px;overflow:hidden}.uploads-head{background:var(--black);color:#fff;align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.uploads-head .icon-btn:hover{background:#ffffff1f}.uploads-list{max-height:260px;overflow:auto}.up-row{border-bottom:1px solid var(--rule);padding:9px 14px;font-size:.88em}.bar{background:var(--active);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.bar>span{background:var(--ink);height:100%;transition:width .2s;display:block}.palette{background:var(--sheet);color:var(--ink);border-radius:var(--r-lg);box-shadow:var(--shadow-float);border:1px solid var(--line);z-index:40;max-height:70vh;animation:pop .12s var(--ease);padding:6px;position:absolute;top:46px;left:0;right:0;overflow:auto}.palette .pg{padding:8px 10px 4px;font-size:.86em}.palette .pi{cursor:pointer;border-radius:var(--r-sm);align-items:center;gap:11px;padding:8px 10px;display:flex}.palette .pi.active,.palette .pi:hover{background:var(--active)}.palette .pi .pt{flex:1;min-width:0}.palette .pi .pt div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}mark,.hl{color:inherit;background:#ffe7a3;border-radius:2px;padding:0 1px}table.data{border-collapse:collapse;width:100%;font-size:.95em}table.data th{text-align:left;color:var(--gray-600);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:.86em;font-weight:500}table.data td{border-bottom:1px solid var(--rule);vertical-align:top;padding:11px 14px}table.data tr:last-child td{border-bottom:0}table.data tr.click{cursor:pointer;transition:background .1s}table.data tr.click:hover td{background:var(--hover)}table.data tr.sel td{background:var(--active)}.table-wrap{overflow:auto}.project-head{background:var(--sheet);border-bottom:1px solid var(--line);padding:20px 24px 0}.project-head .ph-top{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.project-head .ph-num{font-family:var(--font-head);color:var(--red);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-weight:600}.project-head h1{font-size:1.5em!important}.project-head .ph-facts{color:var(--gray-600);flex-wrap:wrap;gap:6px 24px;margin-top:10px;font-size:.9em;display:flex}.project-head .ph-facts b{color:var(--ink);font-weight:500}.kpis{border:1px solid var(--line);border-radius:var(--r);margin-left:auto;display:flex;overflow:hidden}.kpi{border:0;border-left:1px solid var(--line);cursor:pointer;background:var(--sheet);text-align:left;min-width:124px;padding:10px 16px;transition:background .12s}.kpi:first-child{border-left:0}.kpi:hover{background:var(--hover)}.kpi b{font-family:var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.45em;font-weight:500;line-height:1.15;display:block}.kpi span{color:var(--gray-600);font-size:.82em}.kpi.warn b{color:var(--red)}.ptabs{scrollbar-width:none;gap:8px;margin-top:14px;display:flex;overflow-x:auto}.ptabs .tab{padding:10px 2px}.dash-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.proj-cards{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.proj-card{cursor:pointer;padding:16px 18px;text-decoration:none;transition:border-color .12s,background .12s;display:block}.proj-card:hover{border-color:var(--gray-300);background:var(--raised)}.proj-card .pc-num{font-family:var(--font-head);color:var(--red);font-variant-numeric:tabular-nums;font-size:.92em;font-weight:600}.proj-card h3{margin:6px 0;font-size:1.04em;line-height:1.3}.list-row{border-bottom:1px solid var(--rule);color:inherit;cursor:pointer;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;transition:background .1s;display:flex}.list-row:hover{background:var(--hover)}.list-row:last-child{border-bottom:0}.list-row .lr-main{flex:1;min-width:0}.list-row .lr-main div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inbox{grid-template-columns:minmax(380px,42%) minmax(0,1fr);height:100%;min-height:0;display:grid}.inbox-list{border-right:1px solid var(--line);background:var(--sheet);overflow:auto}.mail-row{border-radius:var(--r);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;margin:2px 8px;padding:11px 12px;transition:background .1s;display:grid}.mail-row:hover{background:var(--hover)}.mail-row.sel{background:var(--active)}.mail-row .mr-from{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mail-row .mr-subj{text-overflow:ellipsis;white-space:nowrap;color:var(--gray-700);grid-column:1/-1;overflow:hidden}.conf{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:.84em;font-weight:500;display:inline-flex}.conf .cbar{background:var(--active);border-radius:3px;width:52px;height:5px;overflow:hidden}.conf .cbar span{height:100%;display:block}.mail-view{background:var(--raised);overflow:auto}.mail-body{white-space:pre-wrap;font-size:.97em;line-height:1.6}.cand{border:1px solid var(--line);border-radius:var(--r);background:var(--sheet);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.cand.top{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.reasons{color:var(--gray-700);margin:8px 0 0;padding-left:18px;font-size:.9em}.reasons li+li{margin-top:2px}.login-wrap{background:var(--sheet);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:100%;display:grid}.login-hero{background:var(--black) url(/login.jpg) center / cover no-repeat;color:#fff;isolation:isolate;flex-direction:column;padding:40px 48px;display:flex;position:relative;overflow:hidden}.login-hero:before{content:"";z-index:-1;background:#0a0a0a8c;position:absolute;inset:0}.login-hero:after{content:"";background:var(--red);width:8px;position:absolute;top:0;bottom:0;left:0}.login-hero h1{letter-spacing:-.03em;text-transform:none;max-width:620px;margin-top:auto;font-size:clamp(2em,3.4vw,3.1em);line-height:1.02}.login-hero h1 span{color:#fff}.login-form{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login-card{width:100%;max-width:380px}.code-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;height:56px;font-size:1.6em}.qr{border-radius:var(--r);background:var(--raised);align-items:center;gap:16px;padding:14px;display:flex}.secret{background:var(--active);border-radius:var(--r-xs);word-break:break-all;-webkit-user-select:all;user-select:all;padding:6px 8px;font-family:ui-monospace,monospace;font-size:.88em}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.lv{border-radius:var(--r-sm);cursor:pointer;background:var(--sheet);border:1px solid #0000;min-width:108px;padding:4px 6px;font-size:.86em;font-weight:500}.lv-0{background:var(--raised);color:var(--gray-500);border-color:var(--line)}.lv-1{background:var(--blue-soft);color:var(--blue-ink)}.lv-2{background:var(--green-soft);color:var(--green-ink)}.lv-3{background:var(--ink);color:#fff}.lv-inh{opacity:.62;border-style:dashed;border-color:var(--line-2)}.subnav{border-bottom:1px solid var(--line);scrollbar-width:none;gap:16px;margin-bottom:24px;display:flex;overflow-x:auto}.subnav .tab{padding:10px 2px}.fab,.mobile-bar,.only-mobile{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=1180px){.details{width:340px}.dash-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){:root{--sidebar:292px;--row:52px;--fs:15px}.only-mobile{display:initial}.hide-mobile{display:none!important}.app{grid-template-columns:minmax(0,1fr)}.topbar{grid-column:1;gap:6px;padding:0 10px}.topbar .brand{align-items:center;text-decoration:none;display:flex}.main{border-radius:var(--r-sheet) var(--r-sheet) 0 0;border-bottom:0;grid-column:1;margin:0;padding-bottom:64px;overflow-x:hidden}.sidebar{width:var(--sidebar);z-index:70;transition:transform .22s var(--ease);box-shadow:var(--shadow-float);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.scrim{z-index:65;background:#12100c61;position:fixed;inset:0}.user-btn .meta,.global-search kbd{display:none}.global-search input{padding-right:10px}.page{padding:18px 16px 40px}.details{inset:var(--topbar) 0 64px 0;z-index:75;border-radius:var(--r-sheet) var(--r-sheet) 0 0;border:1px solid var(--line);position:fixed;width:auto!important}.ex-body{grid-template-columns:minmax(0,1fr)}.folder-search{display:none}.toolbar{scrollbar-width:none;flex-wrap:nowrap;padding:8px 10px;overflow-x:auto}.toolbar .tb-label{display:none}.addressbar{padding:0 10px 10px}.crumbs{min-width:0}table.files .col-hide-m{display:none}table.files td:first-child,table.files th:first-child{padding-left:14px}.project-head{padding:16px 16px 0}.project-head h1{overflow-wrap:anywhere;font-size:1.2em!important}.project-head .ph-facts{display:none}.kpis{scrollbar-width:none;width:100%;margin-left:0;overflow-x:auto}.kpi{flex:1 0 auto;min-width:110px}.mobile-bar{height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--sheet);border-top:1px solid var(--line);z-index:60;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bar a,.mobile-bar button{color:var(--gray-600);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.72em;font-weight:500;text-decoration:none;display:flex;position:relative}.mobile-bar .active{color:var(--ink)}.mobile-bar .mb-photo span{background:var(--red);color:#fff;width:44px;height:44px;box-shadow:0 0 0 4px var(--sheet);border-radius:50%;justify-content:center;align-items:center;margin-top:-18px;display:inline-flex}.mobile-bar .count{position:absolute;top:6px;left:calc(50% + 6px)}.inbox{grid-template-columns:minmax(0,1fr)}.inbox.has-sel .inbox-list{display:none}.login-wrap{grid-template-columns:minmax(0,1fr)}.login-hero{min-height:240px;padding:24px 22px}.login-hero h1{font-size:1.8em}.grid2,.grid3{grid-template-columns:minmax(0,1fr)}.uploads{width:auto;bottom:76px;left:12px;right:12px}.dialog{max-height:92vh}.overlay{padding:4vh 10px 10px}.appr-grid{grid-template-columns:minmax(0,1fr)!important}.appr-grid .preview-box{height:360px!important}}@media print{.topbar,.sidebar,.toolbar,.mobile-bar{display:none}.main{border:0;margin:0}}.gaeb{background:var(--sheet);text-align:left;flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.gaeb-head{border-bottom:1px solid var(--line);padding:16px 20px 12px}.gaeb[data-compact] .gaeb-head{padding:10px 12px 8px;font-size:.9em}.gaeb-title{font-family:var(--font-head);margin-top:6px;font-size:1.1em;font-weight:600}.gaeb[data-compact] .gaeb-title{white-space:nowrap;text-overflow:ellipsis;font-size:.98em;overflow:hidden}.gaeb-facts{color:var(--gray-600);flex-wrap:wrap;gap:4px 20px;margin-top:6px;display:flex}.gaeb-facts b{color:var(--ink);font-weight:500}.gaeb-table{flex:1;min-height:0;overflow:auto}.gaeb table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.92em}.gaeb[data-compact] table{font-size:.82em}.gaeb th{background:var(--sheet);text-align:left;color:var(--gray-600);border-bottom:1px solid var(--line);white-space:nowrap;z-index:1;padding:8px 10px;font-size:.92em;font-weight:500;position:sticky;top:0}.gaeb td{border-bottom:1px solid var(--rule);vertical-align:top;padding:7px 10px}.gaeb .num{text-align:right;white-space:nowrap}.gaeb .mono{color:var(--gray-600);white-space:nowrap}.gaeb tr.g-ctgy td{background:var(--raised);padding-top:9px;padding-bottom:9px;font-weight:600}.gaeb tr.g-ctgy td.mono{color:var(--ink)}.gaeb tr.g-item.has-long{cursor:pointer}.gaeb tr.g-item:hover td{background:var(--hover)}.gaeb .g-short{align-items:flex-start;gap:4px;display:inline-flex}.gaeb .g-short svg{color:var(--gray-500);flex:none;margin-top:3px}.gaeb tr.g-long td{color:var(--gray-700);white-space:pre-wrap;padding-top:0;padding-left:27px;font-size:.95em}.gaeb tr.g-remark td{color:var(--gray-600);font-style:italic}.gaeb tfoot td{border-bottom:0;padding-top:10px;font-weight:600}.gaeb tfoot tr:first-child td{border-top:2px solid var(--ink)}.gaeb tfoot tr.g-vat td{color:var(--gray-600);padding-top:2px;font-weight:400}.gaeb tfoot tr.g-gross td{padding-top:4px;font-size:1.05em}.viewer-body .gaeb{border-radius:var(--r) var(--r) 0 0;max-width:1200px;margin:0 auto}.ai-btn.on{background:var(--active);color:var(--ink)}.ai-btn svg{color:var(--red)}.ai-win{z-index:850;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-float);animation:rise .18s var(--ease);flex-direction:column;display:flex;position:fixed;overflow:hidden}.ai-head{border-bottom:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:var(--raised);align-items:center;gap:10px;padding:10px 8px 10px 14px;display:flex}.ai-head:active{cursor:grabbing}.ai-win.collapsed .ai-head{border-bottom:0}.ai-head .icon-btn{width:30px;height:30px}.ai-mark{border-radius:var(--r-sm);background:var(--black);color:#fff;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.ai-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;overflow:auto}.ai-note{background:var(--yellow-soft);color:var(--amber-ink);border-radius:var(--r);padding:10px 12px;font-size:.9em}.ai-empty p{color:var(--gray-700);margin:4px 0 12px}.ai-sugg{flex-direction:column;gap:6px;display:flex}.ai-sugg button{text-align:left;border:1px solid var(--line);background:var(--sheet);border-radius:var(--r);cursor:pointer;padding:9px 12px;transition:background .12s,border-color .12s}.ai-sugg button:hover{background:var(--hover);border-color:var(--line-2)}.ai-msg{border-radius:var(--r-lg);overflow-wrap:anywhere;max-width:92%;padding:9px 12px;font-size:.95em;line-height:1.5}.ai-msg.user{background:var(--black);color:#fff;border-bottom-right-radius:var(--r-xs);white-space:pre-wrap;align-self:flex-end}.ai-msg.assistant{background:var(--raised);border-bottom-left-radius:var(--r-xs);align-self:flex-start}.ai-msg.err{background:var(--neg-soft);color:var(--neg-ink)}.ai-msg p{margin:0}.ai-msg p+p,.ai-msg p+ul,.ai-msg ul+p,.ai-msg p+ol,.ai-msg ol+p{margin-top:8px}.ai-msg ul,.ai-msg ol{margin:0;padding-left:18px}.ai-msg li+li{margin-top:3px}.ai-msg a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:2px;font-weight:500}.ai-src{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.ai-src a{background:var(--sheet);border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;padding:2px 9px;font-size:.82em;text-decoration:none;overflow:hidden}.ai-msg.typing{gap:4px;padding:12px 14px;display:inline-flex}.ai-msg.typing span{background:var(--gray-500);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite blink}.ai-msg.typing span:nth-child(2){animation-delay:.15s}.ai-msg.typing span:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.ai-input{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:10px 12px 6px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line-2);border-radius:var(--r);field-sizing:content;outline:none;flex:1;min-height:40px;max-height:120px;padding:9px 11px;line-height:1.4}.ai-input textarea:focus{border-color:var(--ink)}.ai-send{border-radius:var(--r);background:var(--black);color:#fff;cursor:pointer;border:0;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.ai-send:disabled{opacity:.35;cursor:default}.ai-foot{padding:0 14px 8px;font-size:.76em}@media (width<=900px){.ai-win{height:min(72vh,600px);bottom:72px;right:8px;width:auto!important;top:auto!important;left:8px!important}.ai-win.collapsed{height:auto}.ai-head{cursor:default}}
