:root{--ink:#15130f;--muted:#706b62;--paper:#f7f2e7;--panel:#fffaf0;--line:#d8cfc0;--field:#fffdf8;--accent:#0f766e;--accent-strong:#0b4f4a;--accent-soft:#d8eee9;--warn:#a15c00;--warn-soft:#fff0cc;--danger:#a43c2f;--danger-soft:#ffe0db;--neutral-soft:#e9e3d8;--shadow:0 20px 60px #271f121f;color:var(--ink);background:linear-gradient(90deg, #15130f09 1px, transparent 1px), linear-gradient(#15130f09 1px, transparent 1px), var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:28px 28px;font-family:Aptos,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}#app,.app-frame{min-height:100svh}.app-header{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f2e7e6;justify-content:space-between;align-items:center;gap:22px;padding:18px 34px;display:flex;position:sticky;top:0}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 7px;font-size:12px;font-weight:800}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:34px;font-weight:700;line-height:1}.view-switcher{border:1px solid var(--line);background:var(--panel);border-radius:10px;grid-template-columns:repeat(2,minmax(78px,1fr));gap:6px;padding:5px;display:grid}.view-switcher button,.data-actions button,.table-actions button,.logout-button{min-height:38px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;padding:0 14px;font-weight:800}.view-switcher button.active{color:#fff;background:var(--accent-strong);box-shadow:0 10px 22px #0f766e33}.logout-button{border-color:var(--line);background:var(--panel)}.logout-button:hover{border-color:var(--accent);color:var(--accent-strong)}.toast{z-index:20;border:1px solid var(--line);color:#fff;background:var(--accent-strong);min-width:180px;box-shadow:var(--shadow);border-radius:8px;padding:12px 16px;position:fixed;top:102px;right:24px}.display-page{gap:22px;width:min(1180px,100% - 44px);margin:0 auto;padding:30px 0 48px;display:grid}.display-hero,.analysis-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);align-items:stretch;gap:20px;display:grid}.hero-copy,.hero-cost,.display-board,.expired-board,.focus-board,.analysis-card,.overview-board{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf0db;border-radius:8px}.hero-copy{align-content:center;gap:14px;min-height:230px;padding:34px;display:grid}.hero-copy span,.hero-cost span,.board-title span{color:var(--muted);font-size:14px;font-weight:800}.hero-copy strong{font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:clamp(76px,12vw,132px);line-height:.82}.hero-copy p{max-width:560px;color:var(--muted);font-size:20px}.hero-cost{color:#fff;background:var(--accent-strong);align-content:center;gap:16px;padding:28px;display:grid}.hero-cost span,.hero-cost small{color:#ffffffc7}.hero-cost strong{font-size:36px;line-height:1.08}.summary-strip{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf0b8;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.summary-strip div{border-right:1px solid var(--line);gap:8px;min-height:94px;padding:18px;display:grid}.summary-strip div:last-child{border-right:0}.summary-strip span{color:var(--muted);font-size:13px;font-weight:800}.summary-strip strong{font-size:28px;line-height:1}.display-board,.expired-board,.focus-board,.analysis-card,.overview-board{padding:22px}.board-title{justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;display:flex}.board-title h2{font-size:28px;line-height:1.15}.focus-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.focus-list article{border:1px solid var(--line);background:var(--field);border-radius:8px;gap:9px;min-height:126px;padding:16px;display:grid}.focus-list strong{font-size:21px}.focus-list small,.quiet-state{color:var(--muted)}.reminder-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.reminder-column{border:1px solid var(--line);background:var(--field);border-radius:8px;align-content:start;gap:14px;min-height:168px;padding:16px;display:grid}.reminder-column.danger{background:#ffe0db7a;border-color:#a43c2f47}.reminder-column.warn{background:#fff0cc94;border-color:#a15c0047}.reminder-column.calm{background:#d8eee980;border-color:#0f766e38}.reminder-head,.reminder-list p,.month-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.reminder-head strong{font-size:18px}.reminder-head span{color:#fff;background:var(--ink);border-radius:999px;place-items:center;min-width:34px;height:34px;font-weight:800;display:inline-grid}.reminder-list{gap:8px;display:grid}.reminder-list p{border-top:1px solid #15130f1f;margin:0;padding-top:8px}.reminder-list span{color:var(--muted);white-space:nowrap}.month-timeline{gap:18px;display:grid}.month-group{gap:12px;display:grid}.month-head{border:1px solid var(--line);background:#d8cfc038;border-radius:8px;padding:12px 14px}.month-head h3{font-size:20px}.month-head span{color:var(--muted);font-weight:800}.timeline-list{gap:12px;display:grid}.timeline-row{border:1px solid var(--line);background:var(--field);border-radius:8px;grid-template-columns:82px minmax(0,1fr) minmax(180px,auto);align-items:center;gap:18px;min-height:104px;padding:16px;display:grid}.date-badge{width:66px;height:66px;color:var(--accent-strong);background:var(--accent-soft);border-radius:8px;place-items:center;display:grid}.date-badge strong{font-size:27px;line-height:.9}.date-badge span{font-size:12px;font-weight:800}.date-badge.soon{color:var(--warn);background:var(--warn-soft)}.date-badge.urgent{color:var(--danger);background:var(--danger-soft)}.timeline-main,.record-main{gap:8px;min-width:0;display:grid}.timeline-main p,.timeline-main small,.timeline-money span,.expired-list span,.owner-list span,.rank-list span{color:var(--muted)}.timeline-main p,.timeline-main small{overflow-wrap:anywhere}.timeline-money{text-align:right;justify-items:end;gap:5px;display:grid}.timeline-money strong{white-space:nowrap}.record-title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.record-title-line h3{font-size:22px;font-weight:800;line-height:1.2}.status-pill,.mini-pill{min-height:26px;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.mini-pill{color:var(--muted);background:var(--neutral-soft)}.status-pill.soon{color:var(--warn);background:var(--warn-soft)}.status-pill.urgent,.status-pill.expired{color:var(--danger);background:var(--danger-soft)}.status-pill.cancelled{color:var(--muted);background:var(--neutral-soft)}.rank-list,.owner-list,.expired-list{gap:8px;margin:0;padding:0;display:grid}.overview-table-wrap{border:1px solid var(--line);background:var(--field);border-radius:8px;overflow:auto}.overview-table{border-collapse:collapse;width:100%;min-width:760px}.overview-table th,.overview-table td{border-bottom:1px solid var(--line);text-align:left;padding:13px 14px}.overview-table th{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#fffaf0b8;font-size:12px}.overview-table tr:last-child td{border-bottom:0}.rank-list{list-style-position:inside}.rank-list li,.owner-list article,.expired-list article{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:13px 0;display:flex}.ledger-shell{grid-template-columns:minmax(320px,410px) minmax(0,1fr);min-height:calc(100svh - 92px);display:grid}.auth-page{place-items:center;min-height:calc(100svh - 92px);padding:34px;display:grid}.auth-card{border:1px solid var(--line);width:min(100%,460px);box-shadow:var(--shadow);background:#fffaf0e6;border-radius:8px;gap:28px;padding:30px;display:grid}.auth-card h2{margin-bottom:10px;font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:34px;line-height:1.08}.auth-card p{color:var(--muted)}.auth-form{gap:16px;display:grid}.entry-panel{border-right:1px solid var(--line);background:linear-gradient(180deg, #fffaf0eb, #fffaf0c7), var(--panel);align-self:start;min-height:calc(100svh - 92px);padding:36px 40px;position:sticky;top:91px}.panel-heading{max-width:8em;font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:40px;font-weight:700;line-height:1.06}.entry-form{gap:18px;margin-top:30px;display:grid}label{gap:7px;display:grid}label span{color:var(--muted);font-size:13px;font-weight:800}input,select,textarea{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:var(--field);border-radius:8px;outline:none;padding:10px 12px;transition:border-color .16s,box-shadow .16s,background .16s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #0f766e24}.check-line{align-items:center;gap:10px;display:flex}.check-line input{width:18px;min-height:18px}.field-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.duration-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.form-error{border:1px solid var(--danger-soft);color:var(--danger);background:#ffe0db6b;border-radius:8px;padding:10px 12px}.form-actions{grid-template-columns:1fr auto;align-items:center;gap:10px;margin-top:6px;display:grid}.primary-action,.secondary-action{border:1px solid #0000;border-radius:8px;min-height:42px;padding:0 16px;font-weight:800}.primary-action{color:#fff;background:var(--accent-strong);box-shadow:0 12px 28px #0f766e38}.primary-action:hover{background:#083f3b}.secondary-action,.data-actions button,.table-actions button{color:var(--ink);border-color:var(--line);background:0 0}.secondary-action:hover,.data-actions button:hover,.table-actions button:hover{border-color:var(--accent);color:var(--accent-strong)}.danger-action{color:var(--danger)!important}.records-panel{align-content:start;gap:18px;padding:34px;display:grid}.manage-tools{gap:14px;display:grid}.toolbar{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:14px;display:grid}.compact-controls{grid-template-columns:132px 132px 132px;gap:10px;display:grid}.data-actions{flex-wrap:wrap;gap:8px;display:flex}.table-wrap{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf8e6;border-radius:8px;overflow:auto}.record-table{border-collapse:collapse;width:100%;min-width:920px}.record-table th,.record-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 16px}.record-table th{z-index:1;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--panel);font-size:12px;position:sticky;top:0}.record-table tr:last-child td{border-bottom:0}.record-table td{font-size:14px}.record-table td strong,.record-table td span,.record-table td small{display:block}.record-table td span,.record-table td small{color:var(--muted);margin-top:5px}.table-actions{flex-wrap:wrap;gap:6px;min-width:190px;display:flex}.table-actions button{min-height:32px;padding:0 10px;font-size:12px}.empty-state{border:1px dashed var(--line);min-height:260px;color:var(--muted);background:#fffaf094;border-radius:8px;place-items:center;gap:8px;display:grid}.empty-state strong{color:var(--ink);font-size:22px}@media (width<=1080px){.display-hero,.analysis-grid,.ledger-shell,.toolbar{grid-template-columns:1fr}.entry-panel{border-right:0;border-bottom:1px solid var(--line);min-height:auto;position:static}.compact-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.focus-list{grid-template-columns:1fr}.reminder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.app-header,.entry-panel,.records-panel{padding:22px 18px}.app-header{align-items:stretch;display:grid}.display-page{width:min(100% - 28px,1180px);padding-top:18px}h1{font-size:30px}.field-grid,.duration-grid,.form-actions,.summary-strip,.timeline-row,.compact-controls{grid-template-columns:1fr}.summary-strip div{border-right:0;border-bottom:1px solid var(--line);min-height:76px}.summary-strip div:last-child{border-bottom:0}.board-title,.rank-list li,.owner-list article,.expired-list article,.reminder-head,.reminder-list p,.month-head{display:grid}.reminder-grid{grid-template-columns:1fr}.timeline-money{text-align:left;justify-items:start}.toast{inset:auto 14px 14px}}
