:root{--bg: #F0F2F5;--surface: #FFFFFF;--fg: #141619;--muted: #69707A;--faint: #98A0AA;--line: rgba(18, 22, 30, .13);--line-2: rgba(18, 22, 30, .07);--line-strong: rgba(18, 22, 30, .22);--hover: rgba(18, 22, 30, .035);--selected: rgba(18, 22, 30, .06);--accent: #C0303E;--accent-soft: rgba(192, 48, 62, .1);--ok: #1F7A55;--ok-soft: rgba(31, 122, 85, .1);--warn: #8A5A12;--warn-soft: rgba(176, 120, 30, .11);--danger: #C0303E;--danger-soft: rgba(192, 48, 62, .08);--f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--f-data: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--f-display: "Space Grotesk", "IBM Plex Sans", Arial, sans-serif;--f-logo: var(--f-display);--rs-red: var(--accent);--r: 6px;--control-h: 40px;--chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%2369707A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font:15px/1.55 var(--f-body);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:#fff}a{color:var(--fg);text-decoration-color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent)}.num{font-family:var(--f-data);font-variant-numeric:tabular-nums}h1{font-family:var(--f-display);font-size:1.75rem;line-height:1.15;margin:0;font-weight:600;letter-spacing:-.028em;text-wrap:balance}h2{font-family:var(--f-display);font-size:1.15rem;margin:0;font-weight:600;letter-spacing:-.015em}.topbar{background:var(--surface);border-bottom:1px solid var(--line)}.topbar-in{max-width:1180px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));display:flex;flex-wrap:nowrap;gap:8px 28px;align-items:stretch;min-height:60px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg)}.brand:hover{color:var(--fg)}.logo{font-family:var(--f-logo);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--fg);line-height:1}.logo b{color:var(--accent);font-weight:700}.brand small{font-family:var(--f-data);color:var(--muted);font-size:11px;letter-spacing:.19em;text-transform:uppercase;padding-top:3px}.nav{display:flex;gap:22px;flex:1;min-width:0;overflow-x:auto;align-items:stretch}.nav a{display:flex;align-items:center;text-decoration:none;color:var(--muted);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.nav a:hover{color:var(--fg)}.nav a.active{color:var(--fg);border-bottom-color:var(--accent)}.topbar-in>button.ghost{align-self:center}.main>*{min-width:0}.main{max-width:1180px;margin:0 auto;padding:32px max(16px,env(safe-area-inset-right,0px)) 56px max(16px,env(safe-area-inset-left,0px));display:grid;gap:20px}.pagehead{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:end;justify-content:space-between}.pagehead>div:first-child{display:grid;gap:6px}.sub{color:var(--muted);font-size:.9rem;margin:0}button,.btn{font:inherit;font-size:.93rem;cursor:pointer;border-radius:var(--r);min-height:var(--control-h);padding:0 16px;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-weight:500}button:hover,.btn:hover{border-color:var(--fg);color:var(--fg)}button.primary,.btn.primary{background:var(--fg);border-color:var(--fg);color:#fff}button.primary:hover,.btn.primary:hover{background:#2b2f35;border-color:#2b2f35;color:#fff}button.danger{color:var(--danger)}button.danger:hover{border-color:var(--danger);color:var(--danger)}button.ghost{border-color:transparent;background:none;min-height:32px;padding:0 8px;color:var(--muted)}button.ghost:hover{color:var(--fg);background:var(--selected);border-color:transparent}button:disabled,button:disabled:hover{opacity:.45;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{font:inherit;font-size:.95rem;color:var(--fg);background-color:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);width:100%;min-width:0}input,select{height:var(--control-h);padding:0 12px}textarea{padding:10px 12px;resize:vertical;min-height:88px;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 3px var(--line-2)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer;background-image:var(--chevron);background-repeat:no-repeat;background-position:right 12px center;background-size:12px;text-overflow:ellipsis}select:invalid,select option[value=""]{color:var(--faint)}select option{color:var(--fg)}input[type=date]{font-family:var(--f-data);font-size:.88rem}input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.9}input[type=search]::-webkit-search-cancel-button{cursor:pointer}input[type=checkbox]{width:16px;height:16px;accent-color:var(--fg)}input.num{text-align:left}input.bignum{text-align:right}label{display:grid;gap:6px;font-size:.84rem;color:var(--muted);min-width:0}label>span.req:after{content:" *";color:var(--accent)}.hint{font-size:.78rem;color:var(--muted)}label.bad input{border-color:var(--danger)}label.bad .hint{color:var(--danger)}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px}.card{padding:24px;display:grid;gap:20px}fieldset{border:0;margin:0;padding:0;display:grid;gap:14px}legend{font-family:var(--f-data);font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:0;margin-bottom:10px}.note{padding:11px 14px;border-radius:var(--r);font-size:.9rem;border:1px solid transparent}.note.err{background:var(--danger-soft);color:var(--danger);border-color:#c0303e2e}.note.ok{background:var(--ok-soft);color:var(--ok);border-color:#1f7a5529}.note.warn{background:var(--warn-soft);color:var(--warn);border-color:#b0781e33}.note button.ghost{color:inherit;text-decoration:underline;text-underline-offset:3px;min-height:0;padding:0 4px}.empty{color:var(--muted);padding:32px 20px;text-align:center}.pill{display:inline-block;font-family:var(--f-data);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;padding:3px 8px;border-radius:4px;white-space:nowrap;border:1px solid transparent}.pill.draft{color:var(--muted);border:1px dashed var(--line-strong)}.pill.issued{color:var(--fg);border-color:var(--fg)}.pill.paid{background:var(--ok-soft);color:var(--ok)}.pill.cancelled{color:var(--faint);text-decoration:line-through;border-color:var(--line)}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px}.filters label{min-width:170px;flex:1}.filters label.narrow{flex:0 1 170px}.filters>button.ghost{min-height:var(--control-h)}.summary{display:flex;flex-wrap:wrap;gap:6px 26px;font-size:.88rem;color:var(--muted)}.listbar{display:grid;justify-items:center;gap:16px;margin-top:16px}.listbar .summary{justify-self:stretch}.listbar .btn.primary{padding:0 18px 0 14px}.plus{font-family:var(--f-display);font-size:1.25rem;font-weight:600;line-height:1;margin-right:2px}.summary b{color:var(--fg);font-weight:500}.tablewrap{overflow-x:auto}table.inv{width:100%;border-collapse:collapse;font-size:.93rem}table.inv th{text-align:left;font-family:var(--f-data);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}table.inv td{padding:12px;border-bottom:1px solid var(--line-2);vertical-align:top}table.inv tr.clickable{cursor:pointer}table.inv tr.clickable:hover td{background:var(--hover)}table.inv tr.open td{background:var(--selected)}table.inv tr.cancelled td:not(.act){color:var(--faint)}table.inv td.r,table.inv th.r{text-align:right}table.inv td.subj{max-width:420px}.subj-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}td.act{white-space:nowrap;text-align:right;width:1%;padding-top:7px!important}td.act .inline{flex-wrap:nowrap}tr.detail td{background:var(--selected);padding:4px 12px 16px}.detail-in{display:grid;gap:10px}.detail-in p{margin:0;white-space:pre-wrap}.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.inline input{width:auto}.split{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:20px;align-items:start}@media (max-width: 640px){.brand small{display:none}.nav{gap:16px}table.inv th.hide-sm,table.inv td.hide-sm{display:none}.filters label,.filters label.narrow{flex:1 1 140px;min-width:0}}@media (max-width: 900px){.split{grid-template-columns:minmax(0,1fr)}}.preview{min-height:540px;display:grid;background:var(--surface)}.preview iframe{width:100%;height:100%;min-height:540px;border:0;border-radius:10px;background:#fff}.bignum{font-size:1.15rem}.cl-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}@media (max-width: 800px){.cl-grid{grid-template-columns:minmax(0,1fr)}}.cl-list{padding:12px;display:grid;gap:10px}.cl-items{display:grid;gap:2px}.cl-item{text-align:left;border:0;border-left:2px solid transparent;border-radius:0 var(--r) var(--r) 0;background:none;min-height:0;padding:9px 10px;display:grid;gap:2px;width:100%;white-space:normal;justify-content:stretch;font-weight:400}.cl-item:hover{background:var(--hover);border-color:transparent}.cl-item[aria-current=true]{background:var(--selected);border-left-color:var(--accent)}.cl-item b{font-weight:500}.cl-item small{color:var(--muted);font-size:.78rem}.contract{border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:10px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .panel{width:min(400px,100%);padding:32px;display:grid;gap:16px}.login-logo{font-size:40px;margin-bottom:8px}.login-title{font-size:1.4rem;color:var(--muted);font-weight:500;letter-spacing:-.015em}.facsimile{max-width:240px;background:repeating-conic-gradient(var(--bg) 0 25%,var(--surface) 0 50%) 0 0 / 16px 16px;border:1px solid var(--line);border-radius:var(--r)}@media (prefers-reduced-motion: no-preference){button,.btn,.nav a,input,select,textarea{transition:background .12s,border-color .12s,color .12s,box-shadow .12s}}.seg{display:inline-flex;flex-wrap:wrap;gap:2px;border:1px solid var(--line-strong);border-radius:var(--r);padding:3px;width:fit-content;max-width:100%;background:var(--bg)}.seg button{border:0;border-radius:4px;background:none;min-height:32px;padding:0 12px;color:var(--muted);font-weight:500}.seg button:hover{color:var(--fg);background:var(--hover)}.seg button.on{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #12161e1f}.tabs{display:flex;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:0 0 2px;min-height:40px;color:var(--muted);margin-bottom:-1px}.tabs button:hover{color:var(--fg);border-color:transparent;border-bottom-color:var(--line-strong)}.tabs button.on{color:var(--fg);border-bottom-color:var(--accent)}
