:root,[data-theme=mystic]{--bg: #16122b;--card: #221c3f;--card-hi: #2c2452;--bar: #1b1636;--fg: #efeaff;--sub: #a59cc9;--accent: #b9a5ff;--accent2: #ff9fc4;--line: #352d5c;--on: #16122b;--warn: #ffcf7a;--glow1: #5a3fb0;--glow2: #7a3a78;--event-ink: #2a1640;color-scheme:dark}[data-theme=classic]{--bg: #14110e;--card: #1f1a15;--card-hi: #2a231b;--bar: #1a1612;--fg: #f3e9d6;--sub: #a8987e;--accent: #c9a35b;--accent2: #7a1f1f;--line: #3a3026;--on: #14110e;--warn: #e0b45c;--glow1: #5a4320;--glow2: #4a1a1a;--event-ink: #f3e9d6;color-scheme:dark}[data-theme=hanji]{--bg: #f7f1e6;--card: #ffffff;--card-hi: #fbf3ee;--bar: #fffaf2;--fg: #2a211b;--sub: #8c7d6c;--accent: #b3282d;--accent2: #2f5d50;--line: #e8dccb;--on: #ffffff;--warn: #b7791f;--glow1: #f0d8c8;--glow2: #dfe9e2;--event-ink: #ffffff;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:440px;margin:0 auto;min-height:100%;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.wrap{padding-inline:20px}.demo-bar{font-size:11px;color:var(--sub);text-align:center;padding:8px 16px;border-bottom:1px solid var(--line);padding-top:calc(8px + env(safe-area-inset-top,0px))}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border-radius:16px;background:var(--accent);color:var(--on);font-weight:800;font-size:16px}a.btn{text-decoration:none}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.ghost{background:var(--card);color:var(--fg);border:1px solid var(--line);font-size:14px}.btn.danger{background:transparent;color:var(--accent2);border:1.5px solid var(--accent2)}.chip{background:var(--accent);color:var(--on);font-weight:800;border-radius:12px;padding:9px 14px;font-size:13px;flex:none}.link{color:var(--sub);font-size:12px}.note{font-size:12px;color:var(--sub);margin:8px 0 0}.empty{color:var(--sub);text-align:center;padding:30px 0;font-size:14px}.label{display:block;font-size:13px;color:var(--sub);margin:14px 0 6px}.label em{font-style:normal;color:var(--accent2)}input,textarea,select{width:100%;background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;font-size:16px}textarea{min-height:110px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}.list{display:grid;gap:8px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sechead{display:flex;justify-content:space-between;align-items:baseline;margin:22px 0 10px}.sechead h2{font-size:18px;margin:0;font-weight:800}.sw{position:relative;width:50px;height:30px;flex:none}.sw input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer;padding:0}.sw i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:30px;background:var(--line);transition:.2s;pointer-events:none}.sw i:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:var(--fg);top:3px;left:3px;transition:.2s}.sw input:checked+i{background:var(--accent)}.sw input:checked+i:after{left:23px;background:var(--on)}.sw input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}.toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:10px}.toggle small{display:block;color:var(--sub);font-size:12px}.days{display:flex;gap:8px;overflow-x:auto;padding:0 20px 6px;margin-inline:-20px;scrollbar-width:none}.days::-webkit-scrollbar{display:none}.day{flex:none;width:58px;padding:10px 0;border-radius:14px;background:var(--card);border:1.5px solid var(--line);text-align:center;position:relative}.day small{display:block;color:var(--sub);font-size:11px}.day b{font-size:18px;font-variant-numeric:tabular-nums}.day.sel{border-color:var(--accent);background:var(--card-hi)}.day:disabled{opacity:.35;cursor:not-allowed}.day:disabled small{color:var(--accent2)}.day .n{position:absolute;top:-5px;right:-3px;background:var(--accent2);color:var(--on);font-size:10px;font-weight:800;border-radius:9px;padding:0 5px}.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;background:var(--bar);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);z-index:5}.tabs>div{display:flex;width:100%;max-width:440px}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 9px;color:var(--sub);font-size:11.5px;font-weight:700;position:relative}.tab svg{width:22px;height:22px}.tab.on{color:var(--accent)}.tab .n{position:absolute;top:5px;left:calc(50% + 6px);background:var(--accent2);color:var(--on);font-size:10px;border-radius:9px;padding:0 5px}.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:13px;font-weight:700;z-index:30;max-width:90%;text-align:center}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0816b3;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet>div{background:var(--card);border-radius:22px 22px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom,0px));width:100%;max-width:440px}.sheet h3{margin:0 0 6px}.sheet ol{color:var(--sub);font-size:14px;padding-left:20px}.loading{color:var(--sub);text-align:center;padding:80px 20px}@media(prefers-reduced-motion:no-preference){.screen{animation:screen-in .3s ease}@keyframes screen-in{0%{opacity:.4;transform:translateY(6px)}}.btn,.opt,.time,.day,.item,.res,.mi{transition:transform .12s ease}.btn:active,.opt:active,.time:active,.day:active,.item:active,.res:active,.mi:active{transform:scale(.97)}}.demo-switch{color:var(--accent);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:2px}
