:root{--bg:#f6f3ed;--surface:#fff;--surface-2:#fbf9f4;--ink:#221712;--muted:#79695e;--faint:#a2948a;--wine:#570b0f;--wine-strong:#6e1116;--wine-soft:#570b0f14;--line:#e6ddd2;--line-strong:#d5c9bb;--ok:#2e6b45;--ok-bg:#e4efe7;--warn:#8a5a12;--warn-bg:#f5ead3;--err:#a3231d;--err-bg:#f7e3e1;--info-bg:#e9e4f2;--info:#4c3d78;--radius:10px;--shadow:0 1px 2px #2217120d, 0 4px 16px #2217120f;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.55}img{max-width:100%;display:block}a{color:var(--wine)}.shell{min-height:100%;display:flex}.sidebar{background:var(--wine);color:#f3e7dc;flex-direction:column;flex:none;width:228px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #f3e7dc29;padding:24px 20px 20px}.sidebar-brand img{width:100%;max-width:168px;height:auto}.sidebar nav{flex-direction:column;flex:1;padding:12px 10px;display:flex;overflow-y:auto}.sidebar nav .nav-divider{background:#f3e7dc38;flex:none;height:1px;margin:10px 12px}.sidebar nav .nav-spacer{flex:1;min-height:12px}.sidebar nav a{color:#f3e7dcd1;border-radius:8px;align-items:center;gap:10px;margin:1px 0;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.sidebar nav a:hover{color:#fff;background:#f3e7dc17}.sidebar nav a.active{color:#fff;background:#f3e7dc29}.sidebar nav a .badge-dot{color:#3a2405;background:#e8b04b;border-radius:999px;margin-left:auto;padding:0 7px;font-size:11px;font-weight:700;line-height:18px}.sidebar-foot{border-top:1px solid #f3e7dc29;gap:6px;padding:12px 14px 16px;display:grid}.sidebar-foot .who{opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-foot button{color:#f3e7dce6;font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #f3e7dc4d;border-radius:7px;padding:6px 10px;font-size:12.5px}.sidebar-foot button:hover{background:#f3e7dc1a}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topstrip{background:var(--surface);border-bottom:1px solid var(--line);z-index:30;align-items:center;gap:14px;padding:10px 28px;display:flex;position:sticky;top:0}.topstrip .state{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.topstrip .spacer{flex:1}.dot{background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px}.dot.dirty{background:#e8b04b}.content{width:100%;max-width:1080px;margin:0 auto;padding:26px 28px 60px}.page-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:.01em;margin:0;font-size:21px;font-weight:650}.page-head .sub{color:var(--muted);width:100%;margin-top:-6px;font-size:13px}.page-head .spacer{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px}.card>.card-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;font-size:14.5px;font-weight:600;display:flex}.card>.card-head .spacer{flex:1}.card>.card-body{padding:18px}.card>.card-body.tight{padding:0}.btn{font:inherit;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--faint);background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--wine);border-color:var(--wine);color:#fff}.btn.primary:hover{background:var(--wine-strong)}.btn.danger{color:var(--err);border-color:#a3231d66}.btn.danger:hover{background:var(--err-bg)}.btn.ghost{color:var(--wine);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--wine-soft)}.btn.small{border-radius:7px;padding:4px 9px;font-size:12.5px}.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--wine);outline-offset:1px}.field{align-content:start;gap:5px;margin-bottom:14px;display:grid}.grid2>*,.grid3>*{align-self:start}.field>label{color:var(--muted);font-size:12.5px;font-weight:600}.field .hint{color:var(--faint);font-size:12px}.field .error{color:var(--err);font-size:12px}.input,textarea.input,select.input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;width:100%;padding:8px 11px}.input:focus{border-color:var(--wine);box-shadow:0 0 0 3px var(--wine-soft);outline:none}textarea.input{resize:vertical;min-height:74px;line-height:1.6}.input.invalid{border-color:var(--err)}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:0 16px;display:grid}@media (width<=760px){.grid2,.grid3{grid-template-columns:1fr}}.badge{letter-spacing:.03em;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge.showing{background:var(--ok-bg);color:var(--ok);border-color:#0000}.badge.upcoming{background:var(--info-bg);color:var(--info);border-color:#0000}.badge.archived{color:#6d5f53;background:#ece7df;border-color:#0000}.badge.draft{background:var(--warn-bg);color:var(--warn);border-color:#0000}.badge.hidden{background:var(--err-bg);color:var(--err);border-color:#0000}.badge.manual{background:var(--wine-soft);color:var(--wine);border-color:#0000}table.list{border-collapse:collapse;width:100%;font-size:13.5px}table.list th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);border-bottom:1px solid var(--line);padding:10px 18px;font-size:11.5px;font-weight:650}table.list td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 18px}table.list tr:last-child td{border-bottom:none}table.list tr.rowlink{cursor:pointer}table.list tr.rowlink:hover{background:var(--surface-2)}.num{font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--faint);padding:40px 20px}.toasts{z-index:100;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{background:var(--ink);color:#f6efe7;box-shadow:var(--shadow);border-radius:9px;max-width:380px;padding:10px 16px;font-size:13.5px;animation:.18s ease-out toast-in}.toast.err{background:var(--err)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.modal-veil{z-index:80;background:#22171273;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px;flex-direction:column;width:min(860px,100%);max-height:86vh;display:flex;box-shadow:0 12px 48px #2217124d}.modal>.modal-head{border-bottom:1px solid var(--line);align-items:center;padding:14px 18px;font-weight:650;display:flex}.modal>.modal-head .spacer{flex:1}.modal>.modal-body{padding:18px;overflow-y:auto}.thumb{object-fit:cover;background:var(--surface-2);border:1px solid var(--line);border-radius:7px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.media-cell{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;font:inherit;border-radius:9px;padding:0;overflow:hidden}.media-cell:hover{border-color:var(--wine)}.media-cell img{aspect-ratio:4/3;object-fit:cover;width:100%}.media-cell .meta{color:var(--muted);gap:1px;padding:7px 9px;font-size:11.5px;display:grid}.media-cell .meta b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.slide-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px;display:flex}.slide-card.dragging{opacity:.45}.slide-card .grip{cursor:grab;color:var(--faint);-webkit-user-select:none;user-select:none;padding:4px 2px;font-size:17px}.slide-card .imgs{flex:none;gap:10px;display:flex}.slide-card .fields{flex:1;min-width:0}.kv{grid-template-columns:130px 1fr;gap:4px 12px;font-size:13px;display:grid}.kv dt{color:var(--faint)}.kv dd{margin:0}.revision-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;font-size:12.5px;display:flex}.revision-row:last-child{border-bottom:none}.revision-row .when{color:var(--muted);min-width:130px}.revision-row .spacer{flex:1}.login-wrap{background:var(--wine);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--surface);border-radius:14px;width:min(400px,100%);padding:34px 32px 30px;box-shadow:0 18px 60px #00000059}.login-card h1{letter-spacing:.1em;text-align:center;margin:0 0 22px;font-size:16px}.login-card .foot{text-align:center;margin-top:14px;font-size:12.5px}.tabs{border:1px solid var(--line-strong);border-radius:8px;margin-bottom:14px;display:inline-flex;overflow:hidden}.tabs button{font:inherit;background:var(--surface);cursor:pointer;color:var(--muted);border:none;padding:6px 14px;font-size:12.5px;font-weight:600}.tabs button.on{background:var(--wine);color:#fff}.check{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.check input{width:16px;height:16px;accent-color:var(--wine)}.code-list{background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:8px;grid-template-columns:repeat(2,1fr);gap:6px;padding:12px 14px;font-family:ui-monospace,Menlo,monospace;font-size:13px;display:grid}.qr-box{width:180px}.qr-box svg{width:100%;height:auto}@media (width<=900px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar nav{flex-wrap:wrap;display:flex}.content{padding:18px 14px 60px}}.bi-head{align-items:center;gap:8px;display:flex}.bi-tabs{border:1px solid var(--line-strong);border-radius:7px;display:inline-flex;overflow:hidden}.bi-tabs button{font:inherit;letter-spacing:.04em;background:var(--surface-2);color:var(--muted);cursor:pointer;border:none;padding:2px 10px;font-size:11px;font-weight:700}.bi-tabs button.on{background:var(--brass,#8a6a33);color:#fff}.bi-empty{color:var(--faint);font-size:11px}.note{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;align-items:flex-start;gap:8px;margin:0 0 14px;padding:9px 12px;font-size:12.5px;display:flex}.note.warn{background:var(--warn-bg);color:var(--warn);border-color:#0000}.note.tight{margin:0}.media-layout{grid-template-columns:252px minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (width<=760px){.media-layout{grid-template-columns:1fr}}.folder-list{gap:2px;display:grid}.folder-row{width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:6px 8px 6px 11px;font-size:13.5px;display:flex}.folder-row:hover{background:var(--surface-2)}.folder-row.on{background:var(--wine-soft);color:var(--wine);font-weight:600}.folder-row.drop-target{border-color:var(--wine);background:var(--wine-soft)}.folder-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.folder-row .lock-slot{flex:none;justify-content:center;width:20px;display:flex}.folder-row .count{text-align:right;width:26px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px;font-weight:400}.folder-row .actions{flex:none;justify-content:flex-end;gap:1px;width:42px;display:flex}.folder-row .actions,.folder-row .icon-btn.on-hover{opacity:0;transition:opacity .12s}.folder-row:hover .actions,.folder-row:focus-within .actions,.folder-row.on .actions,.folder-row:hover .icon-btn.on-hover,.folder-row:focus-within .icon-btn.on-hover,.folder-row.on .icon-btn.on-hover{opacity:1}@media (hover:none){.folder-row .actions,.folder-row .icon-btn.on-hover{opacity:1}}.folder-row .lock-state,.folder-row .icon-btn.locked{color:var(--brass)}.folder-row .lock-state{place-items:center;width:20px;height:20px;display:grid}.icon-btn{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:5px;place-items:center;padding:0;display:grid}.icon-btn:hover{color:var(--ink);background:#22171214}.icon-btn.danger:hover{background:var(--err-bg);color:var(--err)}.icon-btn.locked:hover{background:#8a6a3324}.media-cell.dragging{opacity:.4}.media-cell{position:relative}.img-tile{line-height:0;display:inline-block;position:relative}.img-tile .img-remove{color:#fff;cursor:pointer;opacity:0;background:#221712b8;border:none;border-radius:50%;width:22px;height:22px;font-size:13px;line-height:1;transition:opacity .12s;position:absolute;top:5px;right:5px}.img-tile:hover .img-remove,.img-tile:focus-within .img-remove{opacity:1}.img-tile .img-remove:hover{background:var(--err)}.img-empty{border:1px dashed var(--line-strong);background:var(--surface-2);color:var(--faint);cursor:pointer;border-radius:7px;place-items:center;font-size:20px;display:grid}.img-empty:hover{border-color:var(--wine);color:var(--wine)}.cocktail-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:10px;padding:14px}.cocktail-card>.head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.cocktail-card>.head b{font-size:13px}.cocktail-card>.head .spacer{flex:1}.media-cell.ineligible{opacity:.38;cursor:not-allowed;filter:grayscale(.5)}.media-cell.ineligible:hover{border-color:var(--line)}.folder-row[disabled]{opacity:.5;cursor:default}.note.danger{background:var(--err);border-color:var(--err);color:#fff;font-weight:600}.modestrip{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:9px 28px;font-size:12.5px;font-weight:600;display:flex}.modestrip.live{background:var(--err);color:#fff;border-bottom-color:var(--err)}.modestrip a{color:inherit;white-space:nowrap;margin-left:auto}.modestrip.live a{color:#fff}.mode-choices{gap:8px;margin-bottom:16px;display:grid}.mode-choice{border:1px solid var(--line);cursor:pointer;background:var(--surface-2);border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:2px 10px;padding:11px 14px;display:grid}.mode-choice.on{border-color:var(--wine);background:var(--wine-soft)}.mode-choice input{width:16px;height:16px;accent-color:var(--wine);grid-row:1/span 2}.mode-choice .mode-name{font-weight:600}.mode-choice .mode-desc{color:var(--muted);grid-column:2;font-size:12.5px}.mode-copy{border-top:1px dashed var(--line);padding-top:4px}.mode-copy>.check{margin-top:4px}.mode-preview{margin:14px 0 0}
