:root{--paper:#f6f4ee;--panel:#fffefb;--ink:#1c2422;--ink-soft:#46524d;--muted:#7d8a84;--line:#e4e0d5;--line-strong:#cdc7b6;--pine:#0e4232;--pine-deep:#0a2e23;--pine-black:#07211a;--pine-soft:#e3efe7;--leaf:#2c8c5e;--cream:#f2f0e9;--vermillion:#c93c2c;--green:#1f7a4d;--green-soft:#e9f4ec;--amber:#a8650b;--amber-soft:#faf1de;--red:#b3372a;--red-soft:#faece9;--mono:"IBM Plex Mono", ui-monospace, monospace;--radius:8px;--shadow:0 1px 2px #1c24220d, 0 3px 10px #1c24220d;--shadow-lift:0 2px 4px #1c242212, 0 10px 24px #1c242217}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:IBM Plex Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,sans-serif;font-size:14px;line-height:1.6}button{font:inherit;cursor:pointer}input,select{font:inherit;color:inherit}h1,h2,h3{margin:0}.num,.card-values,.tile-value,.overall-conf,.band-count,.stat-n{font-family:var(--mono)}.shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--pine-deep) 0%, var(--pine-black) 100%);width:232px;color:var(--cream);flex-direction:column;flex-shrink:0;height:100vh;padding:18px 14px 14px;display:flex;position:sticky;top:0}.side-brand{align-items:center;gap:11px;padding:2px 8px 18px;display:flex}.brand-mark{background:var(--pine);width:52px;height:52px;color:var(--cream);font-family:var(--mono);border-radius:14px;justify-content:center;align-items:center;font-size:25px;font-weight:600;display:inline-flex;box-shadow:inset 0 0 0 2px #f2f0e940}.brand-mark.small{background:#f2f0e91a;border-radius:9px;width:34px;height:34px;font-size:17px}.side-brand-text{flex-direction:column;line-height:1.25;display:flex}.side-brand-text strong{letter-spacing:.04em;font-size:15.5px}.side-brand-text span{color:#f2f0e98c;letter-spacing:.08em;font-size:11px}.side-brand-text.large strong{font-size:22px}.side-brand-text.large span{font-size:13px}.side-nav{flex-direction:column;flex:1;gap:3px;display:flex}.side-nav button{color:#f2f0e99e;text-align:left;letter-spacing:.02em;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:600;transition:background .12s,color .12s;display:flex}.side-nav button:hover{color:var(--cream);background:#f2f0e90f}.side-nav button.active{color:#fff;background:#f2f0e91f}.side-bottom{border-top:1px solid #f2f0e91f;flex-direction:column;gap:10px;padding-top:12px;display:flex}.side-user{align-items:center;gap:10px;padding:0 6px;display:flex}.avatar{background:var(--leaf);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.side-user div{flex-direction:column;line-height:1.3;display:flex}.side-user strong{font-size:13px}.side-user span{color:#f2f0e980;letter-spacing:.1em;text-transform:uppercase;font-size:10.5px}.side-actions{gap:6px;display:flex}.side-actions button{color:#f2f0e9cc;background:#f2f0e912;border:1px solid #f2f0e924;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 4px;font-size:11.5px;font-weight:600;display:flex}.side-actions button:hover{color:#fff;border-color:#f2f0e966}.main{background:radial-gradient(#1c24220a 1px, transparent 1px) 0 0 / 22px 22px, var(--paper);flex:1;min-width:0}.page{width:100%;max-width:1360px;margin:0 auto;padding:26px 32px 60px;position:relative}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:.01em;font-size:21px;font-weight:700}.page-head p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.head-actions{align-items:center;gap:9px;display:flex}.updated-at{color:var(--muted);font-size:12px}.btn{background:var(--panel);border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--radius);letter-spacing:.01em;align-items:center;gap:7px;padding:7px 15px;font-weight:600;transition:border-color .12s,background .12s,transform 80ms;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-soft)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--pine);border-color:var(--pine);color:var(--cream)}.btn.primary:hover:not(:disabled){background:var(--pine-deep)}.btn.danger{color:var(--vermillion);border-color:#e5c0ba}.btn.danger:hover:not(:disabled){background:var(--red-soft);border-color:var(--vermillion)}.btn.subtle{color:var(--muted);background:0 0;border-color:#0000}.btn.subtle:hover:not(:disabled){color:var(--ink)}.btn.small{padding:3px 10px;font-size:12px}.btn.icon-only{padding:7px 9px}.btn.added{color:var(--leaf);background:var(--green-soft);opacity:1;border-color:#c4e2cd}.login-split{grid-template-columns:minmax(380px,44%) 1fr;min-height:100vh;display:grid}@media (width<=860px){.login-split{grid-template-columns:1fr}.login-hero{display:none}}.login-hero{background:radial-gradient(#f2f0e90d 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(165deg, var(--pine) 0%, var(--pine-black) 90%);color:var(--cream);flex-direction:column;padding:52px 56px;display:flex}.hero-tag{max-width:380px;margin:40px 0 26px;font-size:19px;font-weight:700;line-height:1.5}.hero-features{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.hero-features li{color:#f2f0e9d1;align-items:flex-start;gap:12px;max-width:380px;font-size:13.5px;display:flex}.feat-check{color:#9fd8ba;background:#2c8c5e59;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:inline-flex}.hero-foot{color:#f2f0e96b;letter-spacing:.08em;margin-top:auto;font-size:11.5px}.login-side{background:var(--paper);justify-content:center;align-items:center;display:flex;position:relative}.lang-toggle.floating{border:1px solid var(--line-strong);color:var(--ink-soft);background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;position:absolute;top:22px;right:26px}.lang-toggle.floating:hover{border-color:var(--ink-soft);color:var(--ink)}.login-form{width:min(420px,88%);animation:.4s backwards rise}.login-form h2{margin-bottom:18px;font-size:17px}.login-roles{flex-direction:column;gap:12px;display:flex}.role-card{text-align:left;background:var(--panel);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:15px;padding:16px 18px;transition:transform .14s,box-shadow .14s,border-color .14s;animation:.4s backwards rise;display:flex}.role-card:hover{box-shadow:var(--shadow-lift);border-color:var(--pine);transform:translateY(-2px)}.role-icon{background:var(--pine-soft);width:42px;height:42px;color:var(--pine);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.role-text{flex-direction:column;flex:1;line-height:1.4;display:flex}.role-name{font-size:15px;font-weight:700}.role-desc{color:var(--muted);font-size:12px}.role-enter{color:var(--leaf);font-size:17px;font-weight:700}.login-note{color:var(--muted);margin-top:20px;font-size:12px}.stat-strip{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:baseline;gap:9px;padding:7px 17px;display:flex}.stat-n{color:var(--ink);font-size:20px;font-weight:600}.stat.red .stat-n{color:var(--red)}.stat.yellow .stat-n{color:var(--amber)}.stat.green .stat-n{color:var(--green)}.stat-l{color:var(--muted);font-size:12px}.band-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.band-section>header{border-bottom:1px solid var(--line);background:linear-gradient(#1c242204,#0000);align-items:center;gap:12px;padding:11px 18px;display:flex}.band-border-green{border-left:4px solid var(--green)}.band-border-yellow{border-left:4px solid var(--amber)}.band-border-red{border-left:4px solid var(--red)}.band-hint{color:var(--muted);flex:1;font-size:12px}.band-count{color:var(--ink-soft);font-size:15px;font-weight:600}.band-empty{color:var(--muted);padding:16px 18px;font-size:13px}.cards{grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:12px;padding:16px 18px;display:grid}.cards>*{min-width:0;max-width:100%;animation:.35s backwards rise}.cards>:first-child{animation-delay:20ms}.cards>:nth-child(2){animation-delay:60ms}.cards>:nth-child(3){animation-delay:.1s}.cards>:nth-child(4){animation-delay:.14s}.cards>:nth-child(5){animation-delay:.18s}.cards>:nth-child(6){animation-delay:.22s}.card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:flex-start;gap:12px;padding:11px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.card:hover{box-shadow:var(--shadow-lift);border-color:var(--line-strong);transform:translateY(-2px)}.card img{object-fit:cover;border:1px solid var(--line);background:#fff;border-radius:4px;flex-shrink:0;width:62px;height:82px}.card-body{flex:1 1 0;min-width:0;overflow:hidden}.card-title{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.card-tags{flex-wrap:wrap;gap:6px;margin:5px 0;display:flex}.card-values{color:var(--ink-soft);font-size:13px}.card-reasons{color:var(--red);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:11.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.card-reasons svg{vertical-align:-1.5px}.drop-overlay{z-index:70;background:#0a2e23d1;justify-content:center;align-items:center;animation:.12s fade;display:flex;position:fixed;inset:0}.drop-overlay>div{color:var(--cream);border:2px dashed #f2f0e980;border-radius:16px;flex-direction:column;align-items:center;gap:14px;padding:56px 84px;font-size:16px;font-weight:700;display:flex}.badge{letter-spacing:.04em;border-radius:4px;padding:2px 10px;font-size:11.5px;font-weight:700;display:inline-block}.badge.band-green{background:var(--green-soft);color:var(--green);border:1px solid #c4e2cd}.badge.band-yellow{background:var(--amber-soft);color:var(--amber);border:1px solid #ecd7ac}.badge.band-red{background:var(--red-soft);color:var(--red);border:1px solid #eccbc4}.badge.warn{background:var(--red-soft);color:var(--red);font-weight:600}.badge.audit{color:#55489b;background:#ece9f7;font-weight:600}.chip{background:var(--pine-soft);color:var(--pine);letter-spacing:.03em;border:1px solid #0000;border-radius:4px;padding:2px 10px;font-size:11.5px;font-weight:700;display:inline-block}.chip.clickable{background:var(--panel);color:var(--muted);border-color:var(--line-strong);cursor:pointer}.chip.clickable.active{background:var(--pine-soft);color:var(--pine);border-color:var(--pine)}.review-head{flex-wrap:wrap;align-items:center;gap:13px;margin-bottom:16px;display:flex}.review-title{flex-direction:column;display:flex}.review-file{letter-spacing:.01em;font-size:15px;font-weight:700}.conf-meter{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.conf-meter-bar{background:var(--line);border-radius:3px;width:68px;height:6px;display:inline-block;overflow:hidden}.conf-meter-bar span{background:var(--leaf);border-radius:3px;height:100%;display:block}.overall-conf{color:var(--muted);font-size:12.5px}.review-grid{grid-template-columns:minmax(360px,1fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.review-grid>.panel{min-width:0}.panel .field-row input,.panel .field-row select{min-width:0;max-width:100%}@media (width<=1060px){.review-grid{grid-template-columns:1fr}.viewer{position:static}}.viewer{border-radius:var(--radius);border:1px solid var(--pine-deep);cursor:grab;-webkit-user-select:none;user-select:none;background:#22302b radial-gradient(#f2f0e90d 1px,#0000 1px) 0 0/18px 18px;height:calc(100vh - 130px);min-height:430px;position:sticky;top:20px;overflow:hidden}.viewer:active{cursor:grabbing}.viewer img{will-change:transform;max-width:94%;max-height:94%;margin:auto;position:absolute;inset:0;box-shadow:0 2px 8px #0000004d}.viewer-controls{background:#07211aeb;border:1px solid #f2f0e926;border-radius:10px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.viewer-controls button{color:#e8e5da;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:34px;height:30px;display:inline-flex}.viewer-controls button:hover{background:#f2f0e926}.zoom-readout{color:#cfd8d2;font-family:var(--mono);justify-content:center;align-items:center;min-width:48px;font-size:11.5px;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;animation:.35s backwards rise}.panel fieldset{min-inline-size:0;border:none;min-width:0;margin:0;padding:0}.panel h3{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);align-items:center;gap:10px;margin:20px 0 9px;font-size:11px;display:flex}.panel h3:after{content:"";background:var(--line);flex:1;height:1px}.panel h3:first-child{margin-top:0}.field-row{grid-template-columns:150px 1fr;align-items:center;gap:4px 12px;margin-bottom:8px;display:grid}.field-row label{color:var(--ink-soft);font-size:12.5px}.field-row input,.field-row select,.cell input,.modal input{border:1px solid var(--line-strong);background:#fff;border-radius:6px;width:100%;padding:6px 10px;transition:border-color .12s,box-shadow .12s}.field-row input:focus,.field-row select:focus,.cell input:focus,.modal input:focus{border-color:var(--pine);outline:none;box-shadow:0 0 0 3px #0e42321f}.cell input{font-family:var(--mono);font-size:13px}.field-row .diff{grid-column:2}.combobox{min-width:0;position:relative}.combobox input{width:100%}.combobox-list{z-index:30;background:var(--panel);border:1px solid var(--line-strong);max-height:260px;box-shadow:var(--shadow-lift);border-radius:6px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow-y:auto}.combobox-item{cursor:pointer;align-items:baseline;gap:8px;padding:6px 10px;font-size:13px;display:flex}.combobox-item.active{background:var(--pine-soft)}.combobox-item.current .combobox-label{font-weight:600}.combobox-label{font-family:var(--mono);white-space:nowrap}.combobox-label.muted{color:var(--muted);font-family:inherit}.combobox-sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combobox-empty{color:var(--muted);padding:6px 10px;font-size:12.5px}.head-actions .combobox{flex:0 320px}.head-actions .combobox input{border:1px solid var(--line-strong);background:#fff;border-radius:6px;padding:7px 10px}.head-actions .combobox input:focus{border-color:var(--pine);outline:none;box-shadow:0 0 0 3px #0e42321f}.cell .combobox input{font-family:var(--mono);min-width:120px;font-size:13px}.site-name-hint{color:var(--ink-soft);grid-column:2;font-size:12px}.field-inline{align-items:center;gap:8px;min-width:0;display:flex}.field-inline select{flex:auto}.field-row input.invalid,.cell input.invalid{border-color:var(--red);background:var(--red-soft)}.warn-text{color:var(--amber)}.band-border-none{border-left-color:var(--line-strong)}.in-flight-list{gap:6px;margin:0;padding:0 0 4px;list-style:none;display:grid}.in-flight-list li{flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px;display:flex}.in-flight-name{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.in-flight-err{color:var(--amber);font-size:12.5px}.form-error{color:var(--red);flex:100%;font-size:12.5px}button.stat{font:inherit;text-align:inherit;cursor:pointer}.stat.clickable:hover,.stat.active{border-color:var(--pine);box-shadow:0 0 0 3px #0e42321a}.stat.active{background:var(--pine-soft)}.done-list .table-wrap{margin-top:6px}.done-list header .btn{margin-left:auto}.warn-list{margin:4px 0 0;padding-left:16px}details>summary{cursor:pointer}.doc-type-hint{color:var(--ink-soft);grid-column:2;font-size:12px}.company-row{cursor:pointer}.company-row:hover td{background:var(--cream)}.company-row.open td{background:var(--pine-soft)}.company-row .chev{width:20px;color:var(--muted)}.company-sites>td{background:#fff;padding:6px 10px 12px 30px}.site-tree-head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.site-tree-head input{border:1px solid var(--line-strong);border-radius:6px;flex:0 320px;padding:5px 9px}.site-tree-list{margin:0;padding-left:16px;list-style:none}.site-tree-list>li{padding:2px 0;font-size:13px}.site-tree-list summary{cursor:pointer;align-items:baseline;gap:10px;display:flex}.site-tree-leaf{align-items:baseline;gap:10px;padding-left:18px;display:flex}.site-tree .mono{color:var(--ink-soft)}.badge.reviewing{background:var(--amber-soft);color:var(--amber);border-color:var(--amber)}.bill-tabs{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;display:flex}.bill-tabs .hint{flex:100%;margin-bottom:2px}.bill-tab{border:1px solid var(--line-strong);cursor:pointer;background:#fff;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 10px;font-size:12.5px;display:flex}.bill-tab.active{border-color:var(--pine);background:var(--pine-soft);font-weight:600}.bill-tab.warn{border-color:var(--amber)}.bill-tab-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:11px;font-weight:400;overflow:hidden}.site-name-hint.warn{color:var(--amber)}.diff{color:var(--muted);font-size:11.5px;font-family:var(--mono)}.diff s{color:var(--vermillion)}.line-items{border-collapse:collapse;width:100%}.line-items th{text-align:left;color:var(--muted);white-space:nowrap;letter-spacing:.02em;padding:4px 6px 4px 0;font-size:11.5px;font-weight:600}.line-items td{vertical-align:top;padding:3px 6px 3px 0}.line-items select{width:100%}.totals-row{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.totals-row .field-row{grid-template-columns:1fr}.totals-row input{font-family:var(--mono)}.actions{background:var(--panel);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);gap:10px;margin:20px -22px -20px;padding:14px 22px 18px;display:flex;position:sticky;bottom:0}.banner{border-radius:7px;margin-bottom:12px;padding:11px 15px;font-size:13px}.banner.red{background:var(--red-soft);color:#8c2b20;border:1px solid #eccbc4}.banner.amber{background:var(--amber-soft);color:#7c4a08;border:1px solid #ecd7ac}.banner.neutral{background:var(--paper);border:1px solid var(--line);color:var(--ink-soft)}.banner ul{margin:6px 0 0;padding-left:18px}.banner .hint{color:inherit;opacity:.8;margin-top:4px}.error-banner{background:var(--red-soft);color:#8c2b20;border:1px solid #eccbc4;border-radius:7px;margin-bottom:12px;padding:9px 15px}.exported{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:720px;padding:26px 30px;animation:.35s backwards rise;position:relative}.hanko{border:3px solid var(--vermillion);width:62px;height:62px;color:var(--vermillion);border-radius:50%;justify-content:center;align-items:center;font-size:28px;font-weight:700;animation:.4s cubic-bezier(.2,1.6,.4,1) .15s backwards stamp;display:flex;position:absolute;top:20px;right:26px;transform:rotate(-8deg);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Ccircle cx='1' cy='1' r='1.2' fill='black'/%3E%3Ccircle cx='3' cy='3' r='1.2' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Ccircle cx='1' cy='1' r='1.2' fill='black'/%3E%3Ccircle cx='3' cy='3' r='1.2' fill='black'/%3E%3C/svg%3E");-webkit-mask-size:3.5px;mask-size:3.5px}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg)scale(1.9)}to{opacity:1;transform:rotate(-8deg)scale(1)}}.exported-head{color:var(--pine);letter-spacing:.02em;margin-bottom:6px;font-size:18px;font-weight:700}.exported pre{background:var(--pine-black);color:#dce8dd;font-size:12.5px;font-family:var(--mono);border-radius:8px;padding:15px 17px;line-height:1.65;overflow-x:auto}.exported-actions{border:none;margin:16px 0 0;padding:0;position:static}.hint{color:var(--muted);font-size:12.5px}.modal-backdrop{z-index:50;background:#071a148c;justify-content:center;align-items:center;padding:24px;animation:.15s fade;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(980px,100%);max-height:86vh;box-shadow:var(--shadow-lift);border-radius:12px;padding:20px 24px;animation:.2s rise;overflow-y:auto}.modal.small{width:380px}.modal>header{justify-content:space-between;align-items:center;display:flex}.modal h2{font-size:17px}.cat-chips{gap:8px;margin:12px 0 16px;display:flex}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.gallery-item{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:8px;display:flex}.gallery-item img{object-fit:cover;background:var(--paper);border-radius:5px;width:100%;height:130px}.gallery-name{color:var(--muted);font-size:10.5px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gallery-item .btn{justify-content:center}.conf-flag{font-size:10.5px;font-weight:700;font-family:var(--mono);letter-spacing:0;border-radius:4px;margin-left:4px;padding:1px 6px}.conf-flag.conf-mid{background:var(--amber-soft);color:var(--amber)}.conf-flag.conf-low{background:var(--red-soft);color:var(--red)}.tiles{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;display:grid}.tiles>*{animation:.4s backwards rise}.tiles>:first-child{animation-delay:20ms}.tiles>:nth-child(2){animation-delay:70ms}.tiles>:nth-child(3){animation-delay:.12s}.tiles>:nth-child(4){animation-delay:.17s}.tiles>:nth-child(5){animation-delay:.22s}.tiles>:nth-child(6){animation-delay:.27s}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.tile.lead{border-top:4px solid var(--pine);background:linear-gradient(180deg, #0e423209, transparent 60%), var(--panel)}.tile-value{color:var(--pine-deep);letter-spacing:-.01em;font-size:36px;font-weight:600;line-height:1.1}.tile-label{letter-spacing:.02em;margin-top:6px;font-weight:700}.tile-hint{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.ring-tile{align-items:center;gap:20px;display:flex}.ring{background:conic-gradient(var(--leaf) calc(var(--p) * 1%), var(--line) 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:88px;height:88px;transition:background .4s;display:flex}.ring-value{background:var(--panel);width:64px;height:64px;font-family:var(--mono);color:var(--pine-deep);border-radius:50%;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:flex}.mix{margin-top:12px}.mix-bar{border-radius:4px;gap:2px;height:8px;margin-bottom:5px;display:flex;overflow:hidden}.mix-bar span{border-radius:2px}.mix-green{background:var(--green)}.mix-yellow{background:var(--amber)}.mix-red{background:var(--red)}.toast{background:var(--pine-black);color:var(--cream);box-shadow:var(--shadow-lift);z-index:60;border-radius:999px;padding:10px 24px;font-size:13px;font-weight:600;animation:.25s rise;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.skeleton{border:1px solid var(--line);min-height:106px;box-shadow:none;background:linear-gradient(90deg,#eeebe2 25%,#f6f3ea 42%,#eeebe2 60%) 0 0/200% 100%;animation:1.3s linear infinite shimmer}.skeleton-row{padding:0}.tile.skeleton{min-height:128px}.spinner-wrap{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid var(--line);border-top-color:var(--pine);border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin;display:inline-block}.btn.primary .spinner{border-color:#f2f0e94d;border-top-color:var(--cream)}@media (width<=900px){.sidebar{width:64px;padding:14px 8px}.side-brand-text,.side-user div,.side-nav button span{display:none}.side-nav button{justify-content:center}.side-actions button{gap:0;font-size:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.doc-table{margin-top:28px;animation:.3s rise}.doc-table h2{margin:0;font-size:17px}.table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:10px;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:13px}.table-wrap th,.table-wrap td{text-align:left;white-space:nowrap;padding:8px 12px}.table-wrap th{color:var(--ink-soft);border-bottom:1px solid var(--line);font-weight:600}.table-wrap tbody tr+tr td{border-top:1px solid var(--line)}.table-wrap .mono{font-family:var(--mono);font-size:12px}.side-nav a{color:#f2f0e99e;letter-spacing:.02em;border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex}.side-nav a svg{flex-shrink:0}.side-nav a:hover{color:var(--cream);background:#f2f0e90f}.side-nav a.active{color:#fff;background:#f2f0e91f}.tenant-select{width:100%;font:inherit;color:var(--cream);appearance:none;background:#f2f0e912 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23f2f0e9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 10px center no-repeat;border:1px solid #f2f0e924;border-radius:7px;margin:0;padding:7px 30px 7px 10px;font-size:12.5px;font-weight:600}.tenant-select:hover{border-color:#f2f0e966}.tenant-select option{color:var(--ink);background:var(--panel)}.company-select{font:inherit;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);max-width:100%;padding:7px 10px}.form-field{flex-direction:column;gap:6px;margin:12px 0;display:flex}.form-field span{color:var(--ink-soft);font-size:12.5px}.form-field input{font:inherit;border:1px solid var(--line-strong);background:#fff;border-radius:6px;padding:10px 12px;transition:border-color .12s,box-shadow .12s}.form-field input:focus,.inline-form input:focus,.inline-form select:focus,.company-select:focus,.tenant-select:focus{border-color:var(--pine);outline:none;box-shadow:0 0 0 3px #0e42321f}.btn.wide{justify-content:center;width:100%;margin-top:10px}.login-form form,form.login-form{display:block}.section{margin-bottom:18px;padding:0}.section-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 22px 14px;display:flex}.section-head h2{letter-spacing:.01em;font-size:15.5px;font-weight:700}.section-head p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.section-head .head-actions{flex-wrap:wrap}.section .table-wrap{background:0 0;border:none;border-radius:0}.section .table-wrap th{letter-spacing:.02em;background:#1c242205;padding:8px 22px;font-size:12px}.section .table-wrap td{padding:9px 22px}.section .table-wrap tbody tr:last-child td{border-bottom:1px solid var(--line)}.section .band-empty{padding:14px 22px}.section-foot{border-radius:0 0 var(--radius) var(--radius);background:#1c242204;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 22px 16px;display:flex}.section-foot+.section-foot{border-top:1px solid var(--line)}.section-foot .hint{flex-basis:100%;margin:0}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.inline-form input,.inline-form select{font:inherit;border:1px solid var(--line-strong);background:#fff;border-radius:6px;flex:150px;min-width:150px;max-width:260px;padding:7px 10px;transition:border-color .12s,box-shadow .12s}.inline-form input[type=number]{min-width:90px;max-width:110px;font-family:var(--mono);flex-basis:90px}.inline-form input[type=checkbox]{flex:none;width:15px;min-width:0;height:15px;margin:0;padding:0}.row-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}tr.muted td{opacity:.5}.badge.mono{font-family:var(--mono);letter-spacing:0;font-size:11px}.badge.plain{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line);letter-spacing:0;font-weight:600}.badge.plain+.badge.plain{margin-left:4px}.badge-x{cursor:pointer;color:var(--muted);background:0 0;border:0;margin-left:4px;font-size:12px}.badge-x:hover{color:var(--vermillion)}.check-row{color:var(--ink-soft);align-items:center;gap:6px;font-size:13px;display:flex}.check-row input{accent-color:var(--pine)}.master-count{font-family:var(--mono);color:var(--ink-soft);font-weight:600}.card-noimg{background:var(--pine-soft);width:62px;height:82px;color:var(--pine);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid #c4e2cd;border-radius:4px;flex-shrink:0;place-items:center;font-size:10.5px;font-weight:600;display:grid}.card-age{color:var(--amber);margin-top:4px;font-size:11px;font-weight:600}.viewer-empty{color:#f2f0e999;cursor:default;place-items:center;display:grid}.viewer-pages{color:#e8e5da;font-family:var(--mono);background:#07211aeb;border:1px solid #f2f0e926;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:11.5px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.viewer-pages button{color:#e8e5da;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 6px;font-size:17px;line-height:1}.viewer-pages button:hover:not(:disabled){background:#f2f0e926}.viewer-pages button:disabled{opacity:.35;cursor:default}.review-original{color:var(--muted);border-bottom:1px dotted var(--line-strong);width:fit-content;font-size:12px;text-decoration:none}.review-original:hover{color:var(--pine);border-bottom-color:var(--pine)}.line-items-wrap{max-width:100%;margin:0 -4px;padding:0 4px;overflow-x:auto}.line-items{min-width:640px}.line-items td:first-child{width:26%;min-width:150px}.line-items td:nth-child(2){min-width:112px}.line-items td:nth-child(3){min-width:84px}.line-items td:nth-child(4){min-width:60px}.line-items td:nth-child(5){min-width:100px}.line-items td:nth-child(6){min-width:96px}.line-items td:nth-child(7){width:28px}.radio-row{border:1px solid var(--line);cursor:pointer;background:var(--panel);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.radio-row input{accent-color:var(--pine);flex:none;width:auto}.radio-row:hover{border-color:var(--line-strong)}.radio-row.active{border-color:var(--pine);background:var(--pine-soft)}.login-roles.compact{gap:6px;margin:10px 0 16px}.payload-table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.payload-table th,.payload-table td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px}.payload-table th{color:var(--muted);font-size:11.5px;font-weight:600}.small-text{font-size:12px}.status-badge{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line);letter-spacing:0;font-weight:600}.btn:focus-visible,.side-nav a:focus-visible,.side-nav button:focus-visible,.side-actions button:focus-visible,.card:focus-visible,.role-card:focus-visible,.viewer-controls button:focus-visible,.viewer-pages button:focus-visible,.lang-toggle:focus-visible,.badge-x:focus-visible,a:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.side-nav a span{display:none}.side-nav a{justify-content:center}.tenant-select{background-image:none;padding:7px 4px;font-size:0}.viewer{height:60vh;min-height:320px}}@media (width<=640px){.page{padding:16px 16px 48px}.page-head{margin-bottom:14px}.page-head h1{font-size:19px}.head-actions{flex-wrap:wrap;width:100%}.company-select,.head-actions .combobox{flex:100%}.stat{padding:6px 12px}.stat-n{font-size:17px}.cards{grid-template-columns:1fr;padding:12px}.panel{padding:16px 14px}.actions{border-radius:0;flex-wrap:wrap;margin:16px 0 0;padding:14px 0 0;position:static}.field-row{grid-template-columns:1fr;gap:3px;margin-bottom:10px}.field-row .diff{grid-column:1}.totals-row{grid-template-columns:1fr}.review-head{gap:8px}.review-file{word-break:break-all;font-size:13.5px}.conf-meter{margin-left:0}.tiles{grid-template-columns:1fr}.section-head,.section-foot,.section .table-wrap th,.section .table-wrap td{padding-left:14px;padding-right:14px}.inline-form input,.inline-form select{max-width:none}.modal{padding:16px}.exported{padding:20px 16px}.hanko{width:50px;height:50px;font-size:22px;top:14px;right:14px}}.chip{color:#333;background:#eceff3;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.chip.reg-failed{color:#8a1c1c;background:#fbd9d9}.chip.reg-running{color:#1f4b99;background:#dde8fb}.review-grid.excel{grid-template-columns:1fr}.xl-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:420px;display:grid}@media (width<=1100px){.xl-grid{grid-template-columns:1fr}}.xl-sheet{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;min-width:0;display:flex}.xl-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;padding:8px 10px 0;display:flex}.xl-tab{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;padding:5px 11px;font-size:12px}.xl-tab.on{background:var(--panel);border-color:var(--line-strong);color:var(--ink);margin-bottom:-1px;font-weight:500}.xl-sheet-scroll{max-height:70vh;padding:10px;overflow:auto}.xl-src{border-collapse:collapse;font-size:12px;font-family:var(--mono)}.xl-src td{border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:240px;padding:3px 7px;overflow:hidden}.xl-src td.num{text-align:right;font-variant-numeric:tabular-nums}.xl-src td.grey{color:var(--muted);background:repeating-linear-gradient(135deg, transparent 0 6px, var(--paper) 6px 8px)}.xl-src td.read{background:var(--green-soft)}.xl-src td.lit{outline-offset:-2px;background:#fff3c4;outline:2px solid #d8a92a}.xl-src tr.has-row{cursor:pointer}.xl-legend{color:var(--muted);gap:14px;padding:6px 10px 8px;font-size:11px;display:flex}.xl-swatch{vertical-align:-1px;border-radius:2px;width:11px;height:11px;margin-right:4px;display:inline-block}.xl-swatch.lit{background:#fff3c4;outline:1px solid #d8a92a}.xl-swatch.grey{background:repeating-linear-gradient(135deg, transparent 0 3px, var(--line-strong) 3px 4px)}.xl-rows{flex-direction:column;gap:8px;min-width:0;display:flex}.xl-counts{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.pill{background:var(--paper);color:var(--ink-soft);border-radius:10px;padding:1px 9px;font-size:12px;font-weight:500;display:inline-block}.pill.ok{background:var(--green-soft);color:var(--green)}.pill.fix{background:var(--red-soft);color:var(--red)}.pill.skip{background:var(--amber-soft);color:var(--amber)}.xl-rows-scroll{max-height:62vh;overflow:auto}.xl-table{width:100%;font-size:13px}.xl-table td.code{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.xl-table td.code.none{color:var(--red)}.xl-table tr{cursor:pointer}.xl-table tr.fix td{background:var(--red-soft)}.xl-table tr.sel td{background:#fff3c4}.xl-table tr.dropped td{color:var(--muted);text-decoration:line-through}.xl-table .unit{color:var(--muted);font-size:11px}.xl-decide td{background:var(--red-soft);padding-top:0}.xl-decide-row{flex-wrap:wrap;align-items:center;gap:10px;padding:2px 0 6px;display:inline-flex}.xl-combo{min-width:220px}.xl-warnings{color:var(--amber);margin:0;padding-left:18px;font-size:12px}.card-noimg{text-transform:none;letter-spacing:.02em;align-content:center;gap:3px}.card-reasons.note{color:var(--ink-soft);font-style:italic}.reader-note{opacity:.85;border-top:1px dashed;margin-top:8px;padding-top:6px;font-size:12px}.reader-note-label{text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.reader-note ul{margin-top:3px}.tree-hint{color:var(--amber);grid-column:2;margin-top:0;font-size:12px}.error-banner .hint{color:inherit;opacity:.85;margin-top:4px}.excel-company-list{flex-direction:column;gap:10px;margin:14px 0 18px;display:flex}.excel-company-row{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:center;gap:12px;display:grid}.excel-company-file{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:13px;display:inline-flex;overflow:hidden}.excel-company-file svg{color:var(--pine);flex-shrink:0}@media (width<=640px){.excel-company-row{grid-template-columns:1fr}}.banner.booking{flex-direction:column;gap:8px;display:flex}.booking-choice{flex-wrap:wrap;gap:6px 18px;font-size:13px;display:flex}.booking-choice label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.export-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.export-actions .btn{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.chip.scope-S1{background:var(--amber-soft);color:var(--amber)}.chip.scope-S2{background:var(--pine-soft);color:var(--pine)}.banner.statusbook{flex-direction:column;gap:8px;display:flex}.statusbook-failed{border-top:1px solid var(--line);padding-top:8px}.statusbook-failed .table-wrap{margin-top:6px}.reg-state{color:#4a5560;font-size:12px}.reg-state.reg-done{color:#1b7f5a}.reg-state.reg-failed{color:#b3261e}.reg-state.reg-running,.reg-state.reg-waiting{color:#8a6d00}.banner.registration .table-wrap{margin-top:8px}.registration-results tr.ng td{background:#fff4f2}.registration-results tr.ok td{background:#f2faf7}.registration-strip .hint{margin-top:4px}select.fy-start{font:inherit;padding:2px 6px}.chip.sm-progress{background:var(--amber-soft);color:var(--amber)}.chip.sm-complete{background:var(--green-soft);color:var(--green)}.site-months .chip{white-space:nowrap}.site-months .site-month-values{font-variant-numeric:tabular-nums}.site-months tr.complete td{color:var(--ink-soft)}.site-month-dialog .hint{margin:10px 0 0;font-size:13.5px;line-height:1.6}.reg-fix{background:#fff7ed;border-left:4px solid #c2410c;border-radius:6px;margin-top:10px;padding:10px 12px;font-size:14px;line-height:1.6}.reg-fix strong{color:#9a3412;margin-bottom:2px;display:block}.exported .hint{padding-right:110px}.inline-form input.wide{flex:480px;min-width:0;max-width:none}.section-head p.ev-alert{color:var(--red);font-weight:600}.ev-sub{padding:16px 22px 8px}.evidence-pages{border-top:1px solid var(--line)}.table-note{margin:0;padding:10px 22px 0}.ev-sub h3{margin-bottom:2px}.ev-sub .hint{margin:0}.evidence-box dl{grid-template-columns:max-content minmax(0,1fr);gap:2px 14px;margin:6px 0 0;display:grid}.evidence-box dt{color:var(--muted)}.evidence-box dd{overflow-wrap:anywhere;margin:0}@media (width<=640px){.ev-sub{padding-left:14px;padding-right:14px}}.ev-sub .ev-alert{color:var(--red);margin:4px 0 0;font-weight:600}.portal-message{white-space:pre-wrap;overflow-wrap:anywhere}.portal-box .portal-message{margin:6px 0 2px}
