:root{--ink: #111;--grey: #666;--line: #ddd;--bg: #fff;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}.boot{padding:2rem;color:var(--grey)}.mono{font-family:var(--mono)}.num{text-align:right}.landing{min-height:100vh;display:grid;place-items:center}.landing-card{text-align:center;padding:2rem}.landing-mark,.mark{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--ink);color:#fff;font-weight:700}.landing h1{margin:1rem 0 .25rem}.landing p{color:var(--grey);margin:.25rem 0}.signin{display:inline-block;margin-top:1.25rem;padding:.6rem 1.2rem;border:1px solid var(--ink);border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600}.signin:hover{background:var(--ink);color:#fff}.landing-note{font-size:.85rem;margin-top:1rem}.portal{max-width:960px;margin:0 auto;padding:1.5rem}.portal-head{display:flex;align-items:center;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.portal-head .who{color:var(--grey);font-size:.9rem}.phase-tag{margin-left:auto;font-size:.75rem;color:var(--grey);border:1px solid var(--line);border-radius:6px;padding:.15rem .5rem}.signout{margin-left:auto;font-size:.8rem;color:var(--grey);border:1px solid var(--line);border-radius:6px;padding:.2rem .6rem;text-decoration:none;background:none;cursor:pointer;font-family:inherit}.signout:hover{color:var(--ink);border-color:var(--ink)}.landing-error{margin-top:1rem;font-size:.85rem;color:var(--ink);border:1px solid var(--ink);border-radius:6px;padding:.4rem .7rem}.cards{display:flex;gap:1rem;margin:1.25rem 0}.stat{border:1px solid var(--line);border-radius:10px;padding:1rem;min-width:120px}.stat-value{font-size:1.8rem;font-weight:700}.stat-label{color:var(--grey);font-size:.85rem}.earnings .ledger{border:1px solid var(--line);border-radius:10px;max-width:360px}.ledger-row{display:flex;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--line)}.ledger-row:last-child{border-bottom:0}.ledger-row.strong{font-weight:700}.grid{width:100%;border-collapse:collapse;font-size:.9rem}.grid th,.grid td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line)}.grid th.num,.grid td.num{text-align:right}.plain{list-style:none;padding:0}.plain li{padding:.4rem 0;border-bottom:1px solid var(--line)}.plain em{color:var(--grey);font-style:normal}h2{margin:1.75rem 0 .75rem;font-size:1.1rem}.save-error{color:#000;background:#f2f2f2;border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem;font-size:.85rem}.add-client{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.add-client input{border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;font:inherit}.add-client input.num{text-align:right;width:130px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.add-client button,.row-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.4rem .7rem;font:inherit;cursor:pointer}.add-client button:disabled,.row-actions button:disabled{opacity:.5;cursor:default}.row-actions{display:flex;gap:.4rem;white-space:nowrap}.notice{color:#000;background:#eef6ee;border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem;font-size:.85rem}.docs{display:inline-flex;gap:.3rem;margin-left:.5rem}.docs button{border:1px solid var(--line);background:#fafafa;border-radius:6px;padding:.25rem .5rem;font:inherit;font-size:.8rem;cursor:pointer}.docs button:disabled{opacity:.5;cursor:default}.hint{color:var(--grey);font-size:.85rem;margin:.25rem 0 .75rem}.templates li{display:flex;align-items:center;gap:.6rem}.templates .ok{color:#1a7f37;font-size:.85rem}.templates .missing{color:var(--grey);font-size:.85rem}.upload-btn{margin-left:auto;border:1px solid var(--line);border-radius:8px;padding:.35rem .7rem;font-size:.8rem;cursor:pointer;background:#fff}.upload-btn input:disabled{cursor:default}
