:root{--page-bg:#f3ece1;--frame:#4a3b2f;--frame-dark:#3a2e25;--sign-today:#2f6f5e;--sign-stock:#8a5a2b;--sign-archive:#3c5578;--sign-admin:#6b5a7d;--sign-text:#f6f0e4;--board-bg:#fffaf0;--board-line:#e6dcc9;--text:#33291f;--muted:#8a7c6b;--stamp:#d1443f;--shutter-a:#b7bec6;--shutter-b:#98a1ab;--shutter-c:#a7b0b9;--scroll-track:transparent;--scroll-thumb:#d3c5aa;--scroll-thumb-hover:#b8a688;--shop-w:min(1200px, calc(100vw - 96px));--gap:40px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--page-bg);height:100vh;color:var(--text);margin:0;font-family:Noto Sans KR,system-ui,sans-serif;overflow:hidden}.page{flex-direction:column;align-items:center;gap:12px;width:100%;height:100%;padding:16px 0;display:flex}.tabs,.ad-slot,.dev-reset{flex:none}.tabs{gap:8px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px 8px 0 0;padding:8px 22px;font-family:inherit;font-size:15px;font-weight:700;transition:color .16s,background .16s,transform .16s}.tab:not(.tab--on):hover{color:var(--frame);transform:translateY(-2px)}.tab--on{background:var(--frame);color:var(--sign-text)}.tab--on:hover{transform:translateY(-2px)}.street{flex:1;width:100%;min-height:0;overflow:hidden}.street-track{align-items:stretch;gap:var(--gap);height:100%;padding:12px max(0px, calc((100% - var(--shop-w)) / 2)) 20px;transition:transform .64s cubic-bezier(.6,.02,.2,1);display:flex}.street-track--0{transform:translate(0)}.street-track--1{transform:translateX(calc(-1 * (var(--shop-w) + var(--gap))))}.street-track--2{transform:translateX(calc(-2 * (var(--shop-w) + var(--gap))))}.street-track--3{transform:translateX(calc(-3 * (var(--shop-w) + var(--gap))))}.shop{flex:0 0 var(--shop-w);border:10px solid var(--frame);background:var(--frame-dark);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:0 18px 40px #3c2d1e38}.sign{color:var(--sign-text);flex:none;justify-content:space-between;align-items:baseline;padding:14px 22px;display:flex}.shop--today .sign{background:var(--sign-today)}.shop--stock .sign{background:var(--sign-stock)}.shop--archive .sign{background:var(--sign-archive)}.shop--admin .sign{background:var(--sign-admin)}.sign-name{letter-spacing:4px;font-size:22px;font-weight:700}.sign-sub{opacity:.85;font-size:14px}.stage{background:var(--board-bg);flex:1;min-height:0;transition:filter .6s;position:relative;overflow:hidden}.shop--today:has(.shutter:not(.shutter--up)) .stage{filter:brightness(.96)}.board{flex-direction:column;height:100%;min-height:0;padding:20px 26px 22px;display:flex}.board-head{min-height:18px;color:var(--muted);margin:0 0 10px;font-size:14px}.board-scroll{flex:1;min-height:0;overflow:hidden auto}.task-list{margin:0;padding:0;list-style:none}.task{border-bottom:1px dashed var(--board-line);padding:14px 12px;transition:background .16s;position:relative}.task:hover{background:#fdf4e4}.task-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.task-main{flex-direction:column;gap:3px;min-width:0;display:flex}.task-headline{align-items:center;gap:10px;display:flex}.sched-badge{text-align:center;min-width:50px;color:var(--muted);background:#efe6d6;border-radius:5px;flex:none;padding:3px 8px;font-size:12px;font-weight:700}.sched-badge--weekly{color:var(--sign-today);background:#dfeee7}.sched-badge--once{color:var(--sign-archive);background:#e8eef7}.task-title{font-size:18px;font-weight:600}.task-title--editable{color:inherit;text-align:left;cursor:text;background:0 0;border:none;border-bottom:1px dashed #0000;padding:0;font-family:inherit}.task-title--editable:hover{border-bottom-color:var(--muted)}.title-edit{font-size:17px;font-weight:600}.memo-btn--danger:hover{border-color:var(--stamp);color:var(--stamp)}.task-tally{color:var(--muted);padding-left:60px;font-size:13px}.task--stamped .task-title{color:var(--muted)}.task-empty,.panel-empty{color:var(--muted);text-align:center;padding:24px 12px;font-size:15px}.task-action{align-items:center;gap:10px;display:flex}.subtask-list{border-left:2px solid var(--board-line);flex-direction:column;gap:8px;margin:12px 0 0 10px;padding:0 0 0 16px;list-style:none;display:flex}.subtask{justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.subtask-title{font-size:15px}.subtask--stamped .subtask-title{color:var(--muted)}.memo-btn{border:1px solid var(--board-line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:12px;transition:border-color .16s,color .16s}.memo-btn:hover,.memo-btn--on{border-color:var(--frame);color:var(--frame)}.memo,.note{border:1px solid var(--board-line);width:100%;color:var(--text);resize:vertical;background:#fffdf8;border-radius:8px;margin-top:10px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.6}.memo{min-height:56px}.note{min-height:70px;margin-top:6px}.memo:focus,.note:focus,.text-input:focus{outline:2px solid var(--sign-today);outline-offset:1px}.note-field{padding:18px 12px 6px;display:block}.note-head{justify-content:space-between;align-items:baseline;display:flex}.field-wrap{flex-direction:column;align-items:flex-end;display:flex}.field-wrap .memo{width:100%;margin-top:2px}.saved-mark{color:var(--sign-today);opacity:0;pointer-events:none;flex:none;font-size:12px;font-weight:700;transition:opacity .24s,transform .24s;transform:translateY(4px)}.saved-mark--on{opacity:1;transform:translateY(0)}.note-label{color:var(--muted);letter-spacing:1px;font-size:13px;font-weight:700}.stamp-slot{color:#b6ab97;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:3px solid #d2c8b8;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-family:inherit;font-size:13px;font-weight:800;transition:border-color .24s,color .24s,transform .14s;display:grid;transform:rotate(-12deg)}.stamp-slot:hover{color:var(--muted);border-color:#a89c88;transform:rotate(-12deg)translateY(-2px)}.stamp-slot--on{border-color:var(--stamp);color:var(--stamp)}.stamp-slot--locked{cursor:context-menu}.stamp-slot--locked:hover{border-color:var(--stamp);color:var(--stamp);transform:rotate(-12deg)}.stamp-slot--sm{border-width:2px;width:30px;height:30px;font-size:11px}.stamp-slot--hit{animation:.36s cubic-bezier(.2,1.5,.4,1) stamp-hit}@keyframes stamp-hit{0%{opacity:.2;transform:scale(2.2)rotate(-30deg)}60%{opacity:1;transform:scale(.9)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(-12deg)}}.close-btn{background:var(--frame);color:var(--sign-text);letter-spacing:1px;cursor:pointer;border:none;border-radius:10px;align-self:center;margin-top:14px;padding:12px 28px;font-family:inherit;font-size:16px;font-weight:700;transition:transform .14s,box-shadow .2s}.close-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #3c2d1e4d}.shutter{background:repeating-linear-gradient(180deg, var(--shutter-a) 0 9px, var(--shutter-c) 9px 18px, var(--shutter-b) 18px 21px);place-items:center;transition:transform 1.15s cubic-bezier(.62,.05,.28,1);display:grid;position:absolute;inset:0;transform:translateY(0);box-shadow:inset 0 -18px 30px #0000002e,inset 0 8px 16px #0000001f}.shutter--up{transform:translateY(-100%)}.shutter-face{place-items:center;display:grid}.shutter-handle{background:var(--frame);opacity:.75;border-radius:6px;width:120px;height:12px;transition:transform .16s,opacity .16s;position:absolute;bottom:10px}.shutter:hover .shutter-handle{opacity:1;transform:translateY(3px)}.plate{flex-direction:column;align-items:center;gap:28px;display:flex}.plate-label{border:3px solid var(--frame);background:var(--board-bg);color:var(--frame);letter-spacing:6px;border-radius:6px;padding:10px 34px;font-size:20px;font-weight:800;transform:rotate(-3deg);box-shadow:0 6px 12px #0000002e}.open-btn{background:var(--sign-today);color:var(--sign-text);letter-spacing:1px;cursor:pointer;border:none;border-radius:12px;padding:16px 40px;font-family:inherit;font-size:19px;font-weight:800;transition:transform .14s,box-shadow .14s;box-shadow:0 6px #23503f}.open-btn:hover{transform:translateY(-3px);box-shadow:0 9px #23503f}.open-btn:active{transform:translateY(3px);box-shadow:0 2px #23503f}.summary{background:var(--board-bg);text-align:center;border-radius:12px;width:380px;max-height:380px;padding:26px 30px;animation:.42s .95s both fade-up;overflow-y:auto;box-shadow:0 10px 24px #0003}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.summary-head{color:var(--muted);letter-spacing:2px;margin:0 0 14px;font-size:14px}.summary-list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:17px;font-weight:600;list-style:none;display:flex}.summary-empty{color:var(--muted);font-weight:400}.summary-tally{color:var(--muted);font-size:13px;font-weight:400;display:block}.summary-bye{color:var(--sign-today);margin:22px 0 0;font-size:24px;font-weight:800}.summary-total{border-top:1px dashed var(--board-line);color:var(--stamp);margin:16px 0 0;padding-top:12px;font-size:14px;font-weight:700}.summary-time{color:var(--muted);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:13px}.reopen-btn{border:2px solid var(--board-line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:18px;padding:8px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:border-color .16s,color .16s,transform .14s}.reopen-btn:hover{border-color:var(--sign-today);color:var(--sign-today);transform:translateY(-2px)}.panel{background:var(--board-bg);flex-direction:column;flex:1;gap:14px;min-height:0;padding:18px 24px 22px;display:flex}.panel-scroll{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex;position:relative;overflow:hidden auto}.panel-scroll>*{flex:none}.panel--scroll{position:relative;overflow-y:auto}.text-input{border:1px solid var(--board-line);color:var(--text);background:#fffdf8;border-radius:8px;padding:9px 12px;font-family:inherit;font-size:15px}.text-input--title{flex:1;font-size:17px;font-weight:700}.text-input--sm{flex:1;padding:6px 10px;font-size:14px}.select{border:1px solid var(--board-line);color:var(--text);cursor:pointer;background:#fffdf8;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:14px}.select--sm{padding:5px 8px;font-size:13px}.primary-btn{background:var(--sign-stock);color:var(--sign-text);cursor:pointer;border:none;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:15px;font-weight:700;transition:transform .14s}.primary-btn:hover{transform:translateY(-2px)}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:13px;transition:color .16s,background .16s}.link-btn:hover{color:var(--frame);background:#f1e7d6}.link-btn--danger:hover{color:var(--stamp);background:#f8e3e2}.tag--once{color:var(--sign-archive);background:#e8eef7}.once-add{align-items:center;gap:8px;padding:14px 12px 0;display:flex}.new-task{gap:10px;display:flex}.new-task .text-input{flex:1}.task-card{border:1px solid var(--board-line);background:#fffdf8;border-radius:10px;transition:border-color .16s;overflow:hidden}.task-card--open{border-color:var(--sign-stock)}.card-toggle{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:13px 16px;font-family:inherit;font-size:16px;transition:background .16s;display:flex}.card-toggle:hover{background:#f7efe1}.card-caret{width:12px;color:var(--muted);flex:none;font-size:11px}.card-name{font-weight:700}.card-tags{gap:6px;margin-left:auto;display:flex}.tag{color:var(--muted);background:#f1e7d6;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.card-body{border-top:1px dashed var(--board-line);flex-direction:column;gap:12px;padding:12px 16px 16px;display:flex}.card-head{align-items:center;gap:10px;display:flex}.card-row{align-items:flex-start;gap:14px;display:flex}.card-label{width:70px;color:var(--muted);flex:none;padding-top:7px;font-size:13px;font-weight:700}.schedule{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.radio{cursor:pointer;align-items:center;gap:5px;font-size:14px;display:flex}.weekday-row{gap:4px;display:flex}.weekday{border:1px solid var(--board-line);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;font-family:inherit;font-size:13px;transition:background .16s,color .16s,border-color .16s}.weekday:hover{border-color:var(--sign-stock)}.weekday--on{background:var(--sign-stock);border-color:var(--sign-stock);color:var(--sign-text);font-weight:700}.child-editor{flex-direction:column;flex:1;gap:6px;display:flex}.child-line{align-items:center;gap:8px;display:flex}.archived-box{border-top:1px dashed var(--board-line);padding-top:6px}.archived-list{color:var(--muted);flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.archived-list li{justify-content:space-between;align-items:center;display:flex}.month-nav{justify-content:center;align-items:center;gap:14px;display:flex}.month-label{font-size:17px;font-weight:700}.calendar{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.cal-head{text-align:center;color:var(--muted);padding-bottom:2px;font-size:12px;font-weight:700}.cal-cell{border:1px solid var(--board-line);height:44px;color:var(--text);cursor:pointer;background:#fffdf8;border-radius:7px;font-family:inherit;transition:transform .14s,border-color .14s;position:relative}.cal-cell:hover{border-color:var(--sign-archive);transform:translateY(-2px)}.cal-cell--blank{cursor:default;background:0 0;border:none}.cal-cell--blank:hover{transform:none}.cal-num{color:var(--muted);font-size:12px;position:absolute;top:5px;left:7px}.cal-stamps{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;position:absolute;bottom:5px;right:7px}.cal-cell--1{background:#e3efe6}.cal-cell--2{background:#bcdcc6}.cal-cell--3{background:#8cc4a0}.cal-cell--4{color:#fff;background:#57a37c}.cal-cell--4 .cal-num{color:#ffffffd9}.cal-cell--picked{border-color:var(--sign-archive);box-shadow:0 0 0 2px var(--sign-archive)}.day-detail{border-top:1px dashed var(--board-line);min-height:300px;padding-top:12px}.detail-head{justify-content:space-between;align-items:baseline;margin:0 0 10px;font-size:15px;font-weight:700;display:flex}.detail-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:400}.detail-list{flex-direction:column;gap:10px;margin:0;padding:0 0 0 12px;font-size:14px;list-style:none;display:flex}.detail-list>li{flex-direction:column;gap:6px;display:flex}.detail-row{align-items:baseline;gap:8px;display:flex}.detail-caret{width:14px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-family:inherit;font-size:10px}.detail-name{min-width:0}.detail-mark{flex:none;margin-left:auto;font-weight:700}.detail-children{color:var(--muted);flex-direction:column;gap:5px;margin:0;padding:0 0 0 44px;font-size:13px;list-style:none;display:flex}.detail-children li{align-items:baseline;gap:8px;display:flex}.detail-undone{color:var(--muted)}.detail-memo{color:var(--muted);margin:0;padding-left:22px;font-size:13px}.detail-note{background:#f6efe1;border-radius:8px;margin:14px 0 0;padding:10px 12px;font-size:14px;line-height:1.6}.detail-note-label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:700;display:block}.admin-block{border-bottom:1px dashed var(--board-line);padding-bottom:18px}.admin-block:last-child{border-bottom:none}.admin-head{margin:0 0 8px;font-size:15px;font-weight:700}.admin-text{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.doc-list{flex-direction:column;gap:8px;display:flex}.doc-link{color:var(--sign-admin);border-bottom:1px solid #0000;align-self:flex-start;font-size:14px;font-weight:600;text-decoration:none}a.doc-link:hover{border-bottom-color:var(--sign-admin)}.doc-link--pending{color:var(--muted);font-weight:400}.doc-pending{background:#efe6d6;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px}.shop{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.shop ::-webkit-scrollbar{width:12px}.shop ::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px;margin:6px 0}.shop ::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:content-box;border:3px solid #0000;border-radius:999px}.shop ::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:content-box}.ad-slot{flex:none;place-items:center;width:728px;height:90px;display:grid}@media (width<=767px){.ad-slot{width:320px;height:50px}}.ad-slot-label{border:1px dashed var(--board-line);width:100%;height:100%;color:var(--muted);border-radius:6px;place-items:center;font-size:12px;display:grid}.dev-reset{border:1px solid var(--muted);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12px}
