:root{--navy:#0f3436;--forest:#006d67;--mint:#e2f1ec;--orange:#e79b36;--ink:#153739;--muted:#69807e;--line:#dce8e3;--bg:#f5f7f4;--white:#fff;--danger:#af3e42;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.65rem,2.6vw,2.4rem);letter-spacing:-.035em}h2{font-size:1.08rem}p{line-height:1.56}small,.mini{font-size:.82rem}.hidden{display:none!important}.muted{color:var(--muted)}.subhead{color:var(--muted);margin:12px 0 26px}.eyebrow{font-size:.71rem;letter-spacing:.16em;font-weight:800;color:#458985;text-transform:uppercase;margin-bottom:10px}.brand-symbol{display:grid;place-items:center;background:var(--forest);border-radius:15px;color:white;font-weight:800;font-size:2.15rem;width:56px;height:56px;box-shadow:0 5px 18px #006d6733}.brand-symbol.small{width:37px;height:37px;border-radius:10px;font-size:1.4rem}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top right,#d4eee4,transparent 55%),var(--bg)}.auth-card{width:min(100%,460px);background:white;padding:38px;border-radius:22px;box-shadow:0 20px 70px #16433e19}.auth-card h1{margin:6px 0}.tabstrip{display:flex;border-bottom:1px solid var(--line);margin-bottom:24px}.tab{flex:1;background:none;border:0;padding:13px;color:var(--muted);font-weight:750}.tab.active{color:var(--forest);border-bottom:3px solid var(--forest)}.foot{margin-top:22px;color:var(--muted);font-size:.75rem}.stack{display:flex;flex-direction:column;gap:17px}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;align-self:flex-start;background:var(--navy);color:white;width:244px;height:100vh;flex-shrink:0;display:flex;flex-direction:column;padding:26px 16px}.sidebar-brand{display:flex;gap:10px;align-items:center;padding:6px;margin-bottom:34px}.sidebar-brand strong{font-size:1rem;letter-spacing:-.03em}.sidebar-brand small{display:block;color:#a9c4c0;margin-top:4px}.menu{display:flex;flex-direction:column;gap:6px}.navbtn{display:flex;align-items:center;gap:12px;border:0;border-radius:12px;text-align:left;background:transparent;color:#b9ceca;font-weight:700;padding:14px}.navbtn span{width:18px;font-size:1.3rem;text-align:center}.navbtn:hover,.navbtn.active{background:#225053;color:white}.sidebar-bottom{margin-top:auto;padding:12px 8px;border-top:1px solid #ffffff2b;display:flex;gap:14px;flex-direction:column;font-size:.73rem;overflow-wrap:anywhere;color:#b8cfca}.main{width:100%;min-width:0;max-width:1480px;margin:0 auto;padding:40px clamp(20px,4vw,54px)}.page{min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.page-head p{margin-top:8px;color:var(--muted)}.btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;border:1px solid transparent;text-decoration:none;border-radius:10px;padding:11px 17px;font-weight:700;min-height:40px;white-space:nowrap;transition:.15s;line-height:1.25}.btn:hover{filter:brightness(.94)}.btn.primary{color:#fff;background:var(--forest)}.btn.outline{color:var(--forest);background:white;border-color:#b8cec8}.btn.ghost{color:inherit;background:transparent}.btn.danger{background:#fff0f0;color:var(--danger);border-color:#ecc4c4}.btn.small{font-size:.75rem;padding:7px 9px;min-height:30px;border-radius:7px}.statgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:23px}.stat{display:flex;flex-direction:column;gap:9px;background:white;border:1px solid var(--line);padding:22px;border-radius:15px}.stat small{color:var(--muted);font-weight:600}.stat strong{font-size:clamp(1.4rem,2.6vw,2.15rem);letter-spacing:-.03em;font-weight:800;overflow-wrap:anywhere}.stat span{font-size:.75rem;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:23px;box-shadow:0 1px 0 #a1c7be10;margin-bottom:22px}.panel-head{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:16px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:750px}th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.7rem;text-align:left;background:#f9fbf9}td,th{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}td{font-size:.86rem}td strong{font-size:.93rem}td.right,th.right{text-align:right;white-space:nowrap}.pill{border-radius:20px;padding:5px 9px;display:inline-block;font-size:.73rem;font-weight:750}.pill.due{color:#8a5008;background:#fff0d5}.pill.paid{color:#21744b;background:#e2f4e8}.pill.overdue{color:#ae3131;background:#fde5e4}.row-actions{display:flex;gap:5px;flex-wrap:wrap}.empty{text-align:center;color:var(--muted);padding:45px}.notice{font-size:.85rem;border-left:3px solid #79aea2;background:#eaf2ee;color:#47645f;padding:14px 17px;border-radius:0 9px 9px 0;line-height:1.5}.notice.compact{font-size:.78rem}.columns{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.formgrid>.full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-weight:700;font-size:.8rem}input,select,textarea{border:1px solid #c9d9d3;background:#fff;border-radius:9px;padding:11px 12px;color:var(--ink);width:100%;min-height:42px}input:focus,textarea:focus,select:focus{outline:2px solid #62b9a7;outline-offset:1px}textarea{resize:vertical}.words-preview{background:#eff5f2;border:1px dashed #b4d4c9;border-radius:11px;padding:16px;min-height:85px;display:flex;flex-direction:column;gap:10px}.words-preview small{font-size:.7rem;color:var(--muted)}.words-preview strong{font-size:.91rem;line-height:1.6}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#f4f8f6;border:1px solid #c9dad5;border-radius:30px;padding:9px 13px;font-size:.82rem;font-weight:700;color:var(--ink)}.chip.selected{color:white;background:var(--forest);border-color:var(--forest)}.schedule-preview{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;display:flex;flex-direction:column;gap:12px;font-size:.83rem;color:var(--muted)}.schedule-row{display:flex;justify-content:space-between;gap:12px}.schedule-row strong{color:var(--ink)}.bottom-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:25px}.bottom-actions small{color:var(--muted)}.calibration-scroll{overflow:auto;padding-bottom:8px}.calibration-paper{width:760px;height:360px;position:relative;background:repeating-linear-gradient(45deg,#f0f4f2,#f0f4f2 5px,#edf3f0 5px,#edf3f0 10px);border:1px solid #c4d8d1;margin:10px 0;border-radius:3px}.paper-tip{position:absolute;bottom:10px;left:12px;font-size:11px;color:#7b9b95}.calibration-field{position:absolute;outline:1px dashed #519b91;background:#b7d7d244;color:#145c56;overflow:hidden;padding:4px;font-size:11px;cursor:pointer}.calibration-field.active{background:#efc97791;outline:2px solid #d78916}.pair{display:flex;gap:8px}.pair .btn{flex:1}.tick{flex-direction:row;align-items:center}.tick input{width:17px;min-height:17px}.stamppreview img{max-width:190px;max-height:80px;border:1px dashed #afc5c0;padding:6px}.stamppreview{font-size:.8rem;color:var(--muted)}.danger-zone{margin-top:25px;border-color:#edc9c9}.danger-zone h2{color:var(--danger)}#flash{z-index:100;position:fixed;right:18px;top:16px;max-width:min(440px,calc(100% - 36px));padding:14px 16px;border-radius:12px;color:white;background:#156c61;box-shadow:0 9px 28px #0002;display:none;line-height:1.4}#flash.error{background:#ad4542}#flash.show{display:block}.mobiletop{display:none}.overdueText{color:var(--danger)}
@media(max-width:1100px){.columns{grid-template-columns:1fr}.sidebar{width:205px}.main{padding:28px 24px}}
@media(max-width:760px){.sidebar{position:fixed;z-index:40;left:-260px;transition:left .2s}.sidebar.open{left:0}.mobiletop{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px}.mobiletop .sidebar-brand{margin:0}.main{padding:16px}.page-head{align-items:flex-start;flex-wrap:wrap}.statgrid{grid-template-columns:1fr;gap:10px}.stat{padding:16px}.stat strong{font-size:1.6rem}.panel-head{align-items:flex-start;flex-wrap:wrap}.formgrid{grid-template-columns:1fr}.auth-card{padding:25px}.panel{padding:16px}.bottom-actions .btn{width:100%}}

/* v1.0.1: readable live stamp preview in account settings */
.stamppreview{display:flex;flex-direction:column;gap:8px;border:1px solid #cee1d9;border-radius:10px;background:#f5faf7;padding:12px;min-height:72px}.stamppreview strong{font-size:.76rem;color:var(--ink)}.stamppreview small{font-size:.73rem;color:var(--muted)}.stamp-text-preview{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);font:500 .82rem/1.4 Arial,sans-serif;border-left:3px solid #90bbb0;padding:6px 10px;max-width:100%}.stamppreview img{max-width:240px;max-height:125px;object-fit:contain;object-position:left top;border:1px dashed #afc5c0;padding:6px}

.photo-card{padding:16px;border:1px solid #cfe0db;border-radius:14px;background:#f7faf9}.photo-card h3{font-size:1rem;margin:0 0 8px}.photo-card input[type=file]{max-width:100%;margin:9px 0}.photo-preview{margin:10px 0;padding:8px;border-radius:8px;background:#eaf1ee}.photo-preview img{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:5px}.photo-card .tick{display:flex;gap:9px;align-items:flex-start;margin:10px 0;font-weight:500}.photo-card .tick input{margin-top:4px}.photo-card .muted{font-size:.81rem}
/* 1.0 RC2 · official beta brand symbol */
.brand-icon{width:37px;height:37px;object-fit:contain;flex:0 0 auto}.brand-icon.large{width:60px;height:60px;margin-bottom:7px}.sidebar .navbtn{text-decoration:none;font-size:14px}.sidebar .navbtn:hover{background:#225053;color:white}.release-tag{color:#9ac9bc;font-size:11px;letter-spacing:.02em}

/* 1.0 RC5 — optional Stripe support, no paywall / no popups */
.sidebar-bottom .donation-nav{display:flex;align-items:center;gap:7px;width:100%;padding:11px 12px;margin:0 0 13px;color:#d7f5ea;text-align:left;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(27,145,117,.18);cursor:pointer;font:inherit;font-size:13px}.sidebar-bottom .donation-nav:hover,.sidebar-bottom .donation-nav.active{background:#225d57;color:#fff}.sidebar-bottom .donation-nav span{font-size:22px;color:#e7cd9a}
.support-panel{max-width:760px;margin:0 auto}.support-heading{display:flex;align-items:center;gap:14px}.support-heading h2{margin:0}.support-heading .muted{margin:3px 0}.support-actions{padding:5px 0}.support-actions .btn{display:inline-flex;align-items:center;justify-content:center}.support-actions .notice{max-width:540px}.support-panel .mini{line-height:1.5}
