:root{--bg:#f7f4ee;--paper:#fffefb;--ink:#302b2b;--muted:#655f63;--green:#3d6b5c;--line:#e2ded5;--soft:#e8eee7;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
a{color:#285344;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.wrap{max-width:1040px;margin:auto;padding:25px 20px 80px}
nav{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:38px;font-size:.92rem;font-weight:600}
nav a{text-decoration:none}nav a:hover{text-decoration:underline}
header{max-width:760px;margin-bottom:28px}
.eyebrow{font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--green);margin:0 0 12px}
h1{font:400 clamp(2.7rem,6vw,4.3rem)/1.05 Georgia,serif;letter-spacing:-.025em;margin:0 0 15px}
h2{font:500 1.55rem/1.2 Georgia,serif;margin:0 0 7px}
p{margin:0}header p,.sub,.note{color:var(--muted)}
.overview{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--soft);border:1px solid #d2dfd1;border-radius:16px;padding:17px 20px;margin-bottom:19px}
.overview strong{font:500 1.22rem Georgia,serif}
.track{height:7px;width:170px;flex:none;background:#cedcd0;border-radius:9px;overflow:hidden}
.track span{display:block;background:var(--green);height:100%;width:0}
.list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:21px 22px;box-shadow:0 3px 18px rgba(70,54,40,.035)}
.card.wide{grid-column:1/-1;background:#f1f5ed;border-color:#d5decf}
.card.wide .items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.sub{font-size:.9rem;margin:0 0 16px}
.item{border-top:1px solid #ebe9e2;padding:12px 0}
.item-main{display:flex;align-items:start;gap:11px}
.item-main label{display:flex;gap:11px;align-items:start;flex:1;cursor:pointer;line-height:1.4}
.item-main input{accent-color:var(--green);width:20px;height:20px;flex:none;margin:2px 0 0}
.item.done .item-main label span{text-decoration:line-through;color:#777}
.remove{background:transparent;border:0;color:var(--muted);font-size:1.2rem;line-height:1;cursor:pointer}
.detail{margin:10px 0 0 31px}
.detail label{display:block;font-size:.84rem;color:#514d4d;margin-bottom:4px}
.detail textarea,.detail select{width:100%;border:1px solid #d5d1c8;background:#fff;border-radius:9px;padding:8px 10px}
.detail textarea{min-height:66px;resize:vertical;font-size:.92rem}
.detail select{max-width:240px}
.add{display:flex;gap:8px;margin-top:17px}
.add input{flex:1;min-width:0;background:#fff;border:1px solid #d5d1c8;border-radius:9px;padding:9px 10px}
.add button,.actions button{border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font-weight:600;cursor:pointer;padding:9px 13px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:23px 0}
.actions button{border-radius:999px;padding:11px 17px}
.actions button.secondary{background:transparent;color:var(--green)}
.note{border-top:1px solid var(--line);padding-top:22px;font-size:.91rem;max-width:82ch}
.note p+p{margin-top:10px}
.empty{color:var(--muted);padding:12px 0}
.wish-group{padding:14px 0;border-top:1px solid #d5decf}
.wish-group h3{font:500 1.15rem Georgia,serif;margin:0 0 6px}
.wish-group ul{margin:0 0 12px;padding-left:22px}
.wish-group li{margin:4px 0}
.wish-group .detail{margin-left:0}
.paper-owner,.paper-answer,.paper-tick{display:none}
.print-brand{display:none}
@media(max-width:750px){.wrap{padding:20px 16px 70px}.list{grid-template-columns:1fr}.card.wide .items{grid-template-columns:1fr}.overview{display:block}.track{width:100%;margin-top:13px}.card{padding:18px}}
@media print{
 @page{size:A4;margin:14mm}
 body{background:#fff;font-size:10pt}
 .wrap{max-width:none;padding:0}
 nav,.add,.actions,.remove,.track,.note,.detail,.no-wishes{display:none!important}
 .print-brand{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0 12px;border-top:4px solid #537c6c;border-bottom:1px solid #d9e2da;color:#355f4f;margin-bottom:20px}
 .print-brand strong{font:500 14pt/1.1 Georgia,serif}
 .print-brand span{font-size:8pt;letter-spacing:.02em;color:#667069}
 header{margin-bottom:16px}
 header .eyebrow{font-size:8pt;letter-spacing:.12em;color:#537c6c}
 header h1{font-size:29pt;line-height:1.07;margin-bottom:0;color:#2f3732}
 header p:not(.eyebrow){display:none}
 .overview{display:none}
 .list,#list{display:block}
 .card{box-shadow:none;border:0;border-top:2px solid #97b4a4;border-radius:0;padding:11px 0 13px;background:#fff!important;break-inside:auto;margin:0 0 11px}
 .card h2{color:#355f4f;font-size:16pt}
 .card .sub{font-size:8.5pt;margin-bottom:11px;color:#69736d!important}
 .card.wide{background:#f7faf6!important}
 .card.wide .items{display:block}
 .card h2,.wish-group h3{break-after:avoid}
 .item{padding:7px 0;break-inside:avoid}
 .item:not(:first-child){border-color:#e4e9e2}
 .item-main label{gap:7px}
 .item-main input{display:none}
 .item.done .item-main label span{text-decoration:none;color:#222}
 .paper-box{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;flex:none;border:1px solid #333;border-radius:1px;font:700 10pt/1 Georgia,serif}
 .paper-tick{margin-top:2px}
 .paper-owner{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;margin:5px 0 0 19px;font-size:8.5pt}
 .paper-choice{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
 .paper-choice .paper-box{width:10px;height:10px}
 .paper-answer{display:block;margin:7px 0 0 19px;min-height:36px}
 .writing-line{display:block;height:18px;border-bottom:1px solid #999}
 .print-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}
 .wish-group{break-inside:auto}
 .wish-group h3{color:#355f4f}
 .wish-group .paper-answer{margin-left:0}
 .wish-group li{break-inside:avoid}
 .sub a{display:none}
}
