:root{--bg:#f7f6f1;--paper:#fffefa;--ink:#363f35;--muted:#7e8477;--olive:#737e60;--line:#e6e8dc;--soft:#eaf0e2;--serif:Georgia,'Songti SC','STSong',serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);padding:10px 16px;min-height:44px}button:hover{background:var(--soft)}button.primary{background:var(--olive);color:white;border-color:var(--olive)}button.quiet{border:0;background:transparent;color:var(--muted)}a{color:var(--olive)}aside{position:fixed;inset:0 auto 0 0;width:230px;background:#f0f1e9;border-right:1px solid var(--line);padding:38px 22px;display:flex;flex-direction:column;gap:8px}aside .brand{font:26px var(--serif);padding:0 12px 35px}aside .brand small{display:block;font:10px/2 sans-serif;letter-spacing:2px;margin-top:12px;color:var(--muted)}aside button{text-align:left;border:0;background:transparent;padding:13px 18px}aside button.active{background:#e0e6d5;color:#48573c}aside .asidefoot{margin-top:auto;padding:15px;color:var(--muted);font-size:12px}main{margin-left:230px;padding:0 46px;max-width:1600px}header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);min-height:85px}header .crumb{color:var(--muted);font-size:12px;letter-spacing:1px}.mode{padding:5px;background:#ebece5;border-radius:30px;display:flex}.mode button{border:0;background:transparent;min-height:34px;padding:5px 14px;font-size:12px;border-radius:24px}.mode button.selected{background:var(--paper);box-shadow:0 2px 6px #00000008}#content{padding-top:30px}h1{font:34px/1.4 var(--serif);margin:0 0 8px}h2{font:23px/1.5 var(--serif);margin:0}h3{font:18px/1.5 var(--serif);margin:0 0 5px}p{margin:8px 0 16px}.muted,small{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--olive);margin-bottom:15px}.titlebar,.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.titlebar{margin:0 0 26px}.actions{display:flex;flex-wrap:wrap;gap:8px}.hero{background:#e8ecdf;border:1px solid #dfe5d4;border-radius:16px;padding:36px;margin-bottom:24px;position:relative;overflow:hidden}.hero p{max-width:530px;color:#737c65}.hero .sprig{position:absolute;right:45px;top:12px;font:130px var(--serif);color:#b8c4a6;transform:rotate(-20deg)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.metric{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.metric strong{font:30px var(--serif);display:block;margin:9px 0}.metric small{font-size:11px}.section{margin:30px 0}.section>.row{margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:13px;overflow:hidden}.card .body{padding:20px}.cover{height:160px;background:#eeeee4;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.bottle{width:46px;height:91px;border:1px solid #9ba78c;border-radius:9px 9px 13px 13px;background:linear-gradient(110deg,#ffffffb0,#c9d2bb);position:relative;box-shadow:10px 12px 22px #58684715;display:flex;align-items:center;justify-content:center;font:10px var(--serif);letter-spacing:1px;color:#60734f}.bottle:before{content:'';position:absolute;top:-14px;width:27px;height:14px;background:#889877;border-radius:4px 4px 0 0}.bottle:after{content:'SANCTUARY';font-size:6px;position:absolute;bottom:24px}.card:nth-child(3n+2) .cover{background:#f0e8e0}.card:nth-child(3n+3) .cover{background:#e8ecec}.tag{display:inline-block;padding:3px 9px;background:var(--soft);border-radius:5px;color:#657455;font-size:11px;margin-right:5px}.stars{color:#a09363;letter-spacing:2px}.card .body button{margin-top:12px}.empty{border:1px dashed #cdd4c0;border-radius:12px;text-align:center;padding:38px 24px;color:var(--muted);background:#ffffff66}.empty h3{color:var(--ink)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.toolbar input{flex:1;min-width:150px}.toolbar select{width:auto;max-width:100%}input,select,textarea{width:100%;border:1px solid #dce1d2;border-radius:8px;background:white;padding:11px;color:var(--ink);min-height:44px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--olive)}textarea{min-height:88px;resize:vertical}label{display:block;font-size:12px;color:#707866;margin:12px 0 5px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.fields .full{grid-column:1/-1}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;margin:16px 0}.line{padding:15px 0;border-bottom:1px solid var(--line)}.line:last-child{border-bottom:0}.line .actions{margin-top:9px}.listview{grid-template-columns:1fr}.listview .card{display:flex}.listview .cover{width:130px;height:auto;min-height:150px;flex-shrink:0}.listview .body{flex:1}dialog{border:1px solid var(--line);border-radius:16px;width:min(620px,94vw);padding:26px;max-height:90dvh;overflow:auto;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#26302066;backdrop-filter:blur(3px)}dialog .dialoghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}dialog .submitrow{display:flex;gap:8px;justify-content:flex-end;margin-top:22px;position:sticky;bottom:-26px;background:var(--paper);padding:14px 0}.notice{padding:13px 17px;border-radius:8px;background:#edf0e6;color:#6b765c;font-size:12px;margin:12px 0}.error{color:#8b503e;white-space:pre-wrap}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-weight:500;color:var(--muted)}footer{padding:36px 0;color:#a0a594;font-size:10px;letter-spacing:2px}#mobile{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#3e4d35;color:white;padding:12px 23px;border-radius:10px;z-index:10;display:none}.checkline{display:flex;align-items:center;gap:15px;padding:12px 0}.checkline span{flex:1}.bar{height:7px;background:#dfe7d3;border-radius:9px;margin-top:8px}.bar i{display:block;background:#8a9876;height:100%;border-radius:9px}details summary{cursor:pointer;padding:12px 0}pre{white-space:pre-wrap;font-size:12px}.rank{font:22px var(--serif);color:#8b9878;margin-right:14px}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.detailhero{display:flex;gap:24px}.detailhero .cover{width:160px;border-radius:12px;flex-shrink:0}@media(min-width:1500px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1050px){aside{width:190px;padding:30px 12px}main{margin-left:190px;padding:0 25px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:700px){aside{display:none}main{margin:0;padding:0 18px 80px}header{min-height:73px}.crumb{max-width:95px}h1{font-size:28px}h2{font-size:21px}.hero{padding:25px}.hero .sprig{right:4px;opacity:.35;font-size:105px}.hero p,.hero h1,.hero button{position:relative;z-index:1}.metrics{gap:8px}.metric{padding:13px 10px}.metric strong{font-size:24px}.metric span{font-size:11px}.metric small{font-size:10px}.grid{gap:12px}.card .body{padding:13px}.cover{height:130px}.card h3{font-size:16px}.titlebar{align-items:flex-start}.titlebar .actions{max-width:150px;justify-content:flex-end}.titlebar button{padding:8px 10px}.fields{gap:0 10px}.panel{padding:18px}.detailhero{gap:14px}.detailhero .cover{width:100px}.listview .cover{width:90px}.toolbar select{flex:1;width:100px}#mobile{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffefaee;border-top:1px solid var(--line);backdrop-filter:blur(10px);padding:7px 4px max(7px,env(safe-area-inset-bottom));z-index:5;justify-content:space-around}#mobile button{padding:3px 9px;border:0;background:none;font-size:10px;color:var(--muted)}#mobile b{display:block;font-size:19px;font-weight:400}#mobile .active{color:#4e633c}#toast{bottom:100px;width:max-content;max-width:90vw}.mode button{padding:5px 10px}.section{margin:25px 0}button,input,select,textarea{font-size:16px}.mode button,.card button,.toolbar button,.actions button{font-size:13px}footer{font-size:8px}}
aside .brand{font-size:23px;padding-left:7px;padding-right:0}
