:root{--ink:#15221d;--muted:#66736d;--green:#0f6b47;--green2:#dff4e9;--line:#dce4df;--paper:#fff;--bg:#f4f7f5;--danger:#b42318;--shadow:0 14px 40px rgba(20,45,33,.09)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Noto Sans TC","Microsoft JhengHei",sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 20px;background:#102c22;color:#fff;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;margin:0 8px 40px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#e9ff55;color:#163326;font-weight:900}.brand b,.brand small{display:block}.brand small{margin-top:3px;color:#a9bdb5;font-size:12px}.sidebar nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#bcd0c8;text-align:left;padding:13px 16px;border-radius:10px;font-size:15px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#1e4838;color:#fff}.site-link{margin-top:auto;color:#d7e7e0;text-decoration:none;padding:14px 10px;border-top:1px solid #345145}.shell{margin-left:250px;padding:34px clamp(24px,4vw,64px) 80px;max-width:1500px}.topbar{display:flex;align-items:center;gap:20px;margin-bottom:32px}.topbar h1{font-size:clamp(25px,3vw,36px);margin:3px 0}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--green);font-weight:800;margin:0}.status-pill{margin-left:auto;background:#e8f5ee;color:#237553;border-radius:30px;padding:9px 13px;font-size:13px}.status-pill i{display:inline-block;width:7px;height:7px;background:#2cb477;border-radius:50%;margin-right:7px}.menu-button{display:none}.welcome{background:linear-gradient(120deg,#174b38,#0f6b47);color:#fff;border-radius:22px;padding:clamp(28px,5vw,52px);display:flex;align-items:end;justify-content:space-between;gap:30px;box-shadow:var(--shadow)}.welcome .eyebrow{color:#b9eace}.welcome h2{font-size:clamp(28px,4vw,46px);margin:8px 0}.welcome p{color:#cce2d9;margin:0;max-width:560px}.primary,.secondary{border:0;border-radius:10px;padding:12px 17px;font-weight:700;cursor:pointer}.primary{background:#dfff58;color:#173024}.primary:hover{background:#e8ff87}.secondary{background:#edf2ef;color:#31443c}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}.stats article,.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 22px rgba(20,45,33,.04)}.stats article{padding:24px}.stats span,.stats small{display:block;color:var(--muted)}.stats strong{display:block;font-size:36px;margin:9px 0}.stats button{border:0;background:none;color:var(--green);padding:0;font-weight:700;cursor:pointer}.panel{padding:26px}.checklist ol{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0;counter-reset:step}.checklist li{list-style:none;padding:18px;background:#f6f9f7;border-radius:12px;counter-increment:step}.checklist li:before{content:counter(step);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green2);color:var(--green);font-weight:800;margin-bottom:15px}.checklist b,.checklist span{display:block}.checklist span{color:var(--muted);font-size:13px;margin-top:5px}.section-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-actions p{color:var(--muted)}.content-list{display:grid}.content-row{display:grid;grid-template-columns:70px 1fr auto auto;align-items:center;gap:18px;padding:18px 6px;border-bottom:1px solid var(--line)}.content-row:last-child{border:0}.content-date{font-size:13px;color:var(--muted)}.content-title{font-weight:750;margin-bottom:5px}.content-summary{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:650px}.badge{border-radius:30px;padding:6px 10px;font-size:12px;background:#edf1ef;color:#58665f}.badge.published{background:#dcf5e7;color:#13704b}.edit-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 13px;cursor:pointer}.empty{text-align:center;padding:45px;color:var(--muted)}.prose{max-width:800px}.prose h3{margin-top:30px}.prose p{color:var(--muted);line-height:1.8}code{background:#edf2ef;padding:2px 6px;border-radius:5px}dialog{width:min(720px,calc(100% - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(10,25,19,.58)}dialog form>header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--line)}dialog h2{margin:5px 0 0}.icon-button{border:0;background:#edf2ef;width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:28px}.form-grid label{font-weight:700;font-size:14px}.form-grid label>span{color:var(--danger)}.form-grid .wide{grid-column:1/-1}input,textarea,select{width:100%;margin-top:8px;padding:12px 13px;border:1px solid #cdd8d2;border-radius:9px;font:inherit;color:var(--ink);background:#fff}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:3px solid #ccebdc;border-color:var(--green)}label small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:5px;text-align:right}dialog footer{display:flex;align-items:center;padding:18px 28px;border-top:1px solid var(--line);gap:10px}.spacer{flex:1}.danger-text{border:0;background:none;color:var(--danger);font-weight:700;cursor:pointer}#toast{position:fixed;right:25px;bottom:25px;background:#18372b;color:#fff;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.shell{margin-left:0;padding:22px 18px 60px}.menu-button{display:block;border:0;background:#fff;border-radius:8px;padding:9px}.welcome{align-items:start;flex-direction:column}.stats,.checklist ol{grid-template-columns:1fr}.content-row{grid-template-columns:55px 1fr auto}.content-row .badge{display:none}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
