@charset "UTF-8";
:root{font-family:Inter,"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;color:#e9f0f5;background:#0b1119;font-size:16px;line-height:1.65;--panel:#121c28;--panel2:#182534;--line:#29394b;--muted:#a5b6c7;--accent:#63e6d2;--danger:#ffabb5;--yellow:#f4cf84;--radius:18px;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.4;letter-spacing:.015em}h2{font-size:1.25rem;line-height:1.5}h3{font-size:1.05rem}small,.small{font-size:.875rem;color:var(--muted)}.muted{color:var(--muted)}.skip{position:absolute;left:12px;top:-80px;z-index:20;padding:10px;background:var(--panel)}.skip:focus{top:8px}.header{border-bottom:1px solid var(--line);background:#101924}.header-inner{max-width:1200px;padding:20px 28px;margin:auto;display:flex;align-items:center;gap:16px;min-height:82px}.brand{display:flex;align-items:center;gap:12px;color:inherit;font-weight:750;letter-spacing:.04em}.brand:hover{text-decoration:none}.brand img{width:37px;height:37px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:16px}.user-chip{color:var(--muted);font-size:.875rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{max-width:1200px;margin:0 auto;padding:36px 28px 60px;min-height:calc(100vh - 168px)}.footer{max-width:1200px;margin:auto;border-top:1px solid var(--line);padding:22px 28px;font-size:.875rem;color:var(--muted)}#demo-banner{background:#23364a;color:#d6e5f1;text-align:center;padding:7px 20px;font-size:.875rem}#demo-banner button{color:var(--accent);margin-left:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;background:var(--accent);color:#0b2525;border-radius:10px;padding:11px 18px;font-weight:750;line-height:1.5;text-decoration:none;min-height:46px}.btn:hover{background:#91f1e2;text-decoration:none}.btn.secondary{color:#e8f0f6;background:var(--panel2);border-color:var(--line)}.btn.secondary:hover{background:#23354a}.btn.danger{color:var(--danger);background:#38212c;border-color:#5d3443}.btn.compact{padding:7px 12px;font-size:.875rem;min-height:38px}.btn.full{width:100%}.text-btn{border:0;background:transparent;color:var(--muted);padding:4px 0;font-size:.875rem}.text-btn:hover{color:white;text-decoration:underline}.text-btn.danger{color:var(--danger)}.flex{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.stack{display:grid;gap:18px}.eyebrow{font-size:.875rem;letter-spacing:.14em;color:var(--accent);font-weight:700;margin-bottom:8px}.badge{display:inline-flex;align-items:center;gap:7px;border-radius:6px;font-size:.875rem;padding:4px 10px;background:#223143;color:#c4d3e0;white-space:nowrap}.badge.open,.badge.ready{background:#153a35;color:#9af0db}.badge.open:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.badge.called{background:#403622;color:#f7dca5}.badge.live{background:#38283f;color:#e7baf6}.badge.cancelled,.badge.noshow{background:#3c2630;color:var(--danger)}.event-heading{margin-bottom:28px}.event-heading h1{margin:10px 0}.event-select{max-width:330px;width:100%}.event-meta{display:flex;gap:12px 26px;flex-wrap:wrap;color:var(--muted);font-size:.9375rem}.event-meta strong{color:#e6eef5;font-weight:600}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.panel h2{margin-bottom:14px}.panel.soft{background:#10252b;border-color:#23514d}.panel.soft h2{color:#b8f5e8}.description{white-space:pre-wrap;overflow-wrap:anywhere;color:#becbd7;font-size:.9375rem}.section-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.section-bar p{font-size:.875rem;color:var(--muted)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:24px}.tab{border:0;border-bottom:2px solid transparent;background:transparent;padding:12px 17px;color:var(--muted);font-weight:600}.tab.active{border-bottom-color:var(--accent);color:var(--accent)}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:25px}.day-label{margin:21px 0 12px;color:#cad8e4;font-size:.9375rem}.slot{min-width:0;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;color:inherit;display:flex;flex-direction:column;gap:9px;min-height:115px;transition:border-color .15s,background .15s}.slot:hover:enabled{border-color:var(--accent);background:#172e35}.slot .time{font-variant-numeric:tabular-nums;font-size:1.45rem;letter-spacing:.01em;font-weight:700;line-height:1.25}.slot .time span{font-size:.875rem;font-weight:400;color:var(--muted)}.slot .availability{font-size:.875rem;color:var(--accent);display:flex;justify-content:space-between;gap:4px}.slot.taken .availability,.slot.blocked .availability{color:var(--muted)}.slot.mine{border-color:#478d82;background:#14312f}.slot:disabled{opacity:.65}.slot.mine:disabled{opacity:1}.aside{display:grid;gap:18px;position:sticky;top:24px}.steps{counter-reset:steps;display:grid;gap:18px;padding:0;margin:0;list-style:none;font-size:.9375rem}.steps li{display:grid;grid-template-columns:27px 1fr;gap:10px;align-items:start}.steps li:before{counter-increment:steps;content:counter(steps);width:25px;height:25px;border-radius:50%;border:1px solid #385366;color:#b9cbd8;display:grid;place-content:center;font-size:.8125rem}.reservation-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;display:grid;gap:16px;margin-bottom:16px}.reservation-card .reservation-time{font-size:1.8rem;line-height:1.35;font-weight:750;font-variant-numeric:tabular-nums}.reservation-card .private-note{font-size:.9375rem;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.reservation-card.highlight{border-color:#386f68}.note{padding:14px 17px;border:1px solid #3a4d60;border-radius:10px;background:#182737;color:#d1deea;font-size:.9375rem}.note.warning{border-color:#6a5431;background:#302a1e;color:#f5dba8}.note.success{border-color:#356c60;background:#15342f;color:#b6f1df}.note a{font-weight:650}.move-banner{margin-bottom:18px;display:flex;gap:14px;justify-content:space-between;align-items:center}.empty{padding:48px 24px;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted)}.empty h2{color:#e8f0f5;margin-bottom:12px}.empty .btn{margin-top:20px}.login-layout{max-width:910px;margin:35px auto;display:grid;grid-template-columns:1.25fr 1fr;gap:50px;align-items:center}.login-main h1{font-size:2.55rem;margin:13px 0 20px}.login-main p{color:var(--muted);margin:16px 0 26px;max-width:450px}.login-main .btn{padding:14px 24px}.login-main .small{display:block;margin-top:16px}.login-note{border-top:1px solid var(--line);padding-top:24px;margin-top:26px}.login-note h3{margin-bottom:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:23px}.stat{padding:18px 21px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.stat .value{font-size:1.9rem;font-weight:750;font-variant-numeric:tabular-nums;margin-top:4px}.stat .label{color:var(--muted);font-size:.875rem}.stat .unit{font-size:.875rem;font-weight:400;margin-left:5px;color:var(--muted)}.admin-controls{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.spotlight{background:#102d30;border:1px solid #285852;border-radius:16px;padding:22px 25px;margin-bottom:24px}.spotlight-name{font-size:1.35rem;font-weight:750;overflow-wrap:anywhere}.spotlight .small{margin-top:4px}.admin-slot{border:1px solid var(--line);background:var(--panel);border-radius:14px;margin-bottom:14px;overflow:hidden}.admin-slot-header{padding:14px 19px;background:#172231;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.admin-slot-header strong{font-size:1.08rem;font-variant-numeric:tabular-nums}.admin-slot-content{padding:16px 19px}.booking-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.booking-row+.booking-row{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.booking-name{font-size:1.08rem;font-weight:650;margin-right:8px;overflow-wrap:anywhere}.row-actions{display:flex;gap:7px;flex-wrap:wrap;max-width:360px;justify-content:flex-end}.booking-note{white-space:pre-wrap;font-size:.9375rem;color:#c4d2de;margin-top:11px;overflow-wrap:anywhere}.booking-row details{margin-top:10px;font-size:.875rem;color:var(--muted)}.booking-row summary{cursor:pointer}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:19px}.toolbar input{max-width:320px}.notification-row{border-bottom:1px solid var(--line);padding:13px 0;font-size:.9375rem}.notification-row:last-child{border:0}.notify-panel{margin-bottom:18px}.scroll{max-height:55vh;overflow:auto;padding-right:8px}.field{display:grid;gap:7px;margin-bottom:17px}.field label{font-size:.9375rem;color:#d0dfeb;font-weight:600}.field .hint{font-size:.875rem;color:var(--muted)}input,textarea,select{width:100%;min-width:0;color:#edf4fa;background:#0e1823;border:1px solid #3b4c60;border-radius:9px;padding:11px 12px;line-height:1.5}textarea{resize:vertical;min-height:94px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;color:#c9d8e5;margin:12px 0}.check input{width:18px;height:18px;flex:none;margin:4px 0;accent-color:var(--accent)}fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin:18px 0}legend{font-size:.9375rem;padding:0 8px}.divider{height:1px;background:var(--line);margin:18px 0}.modal-sub{color:var(--muted);margin:9px 0 22px}.modal-time{background:#142f30;color:#acf2e4;padding:14px 16px;border-radius:10px;margin:18px 0;font-weight:700}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px;flex-wrap:wrap}.error-inline{color:var(--danger);font-size:.9375rem;margin-top:16px;white-space:pre-wrap}dialog{width:min(600px,calc(100% - 28px));max-height:calc(100dvh - 40px);border:1px solid #3b5066;border-radius:20px;background:#121e2b;color:#eef4f9;padding:28px;box-shadow:0 25px 110px #0009}dialog::backdrop{background:#030a12b8;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:start;justify-content:space-between;gap:18px}.dialog-top .text-btn{font-size:1.15rem;padding:0 6px}.dialog-title{font-size:1.4rem;line-height:1.45}.login-error{margin-bottom:24px}#toast{position:fixed;z-index:50;left:50%;bottom:28px;transform:translateX(-50%);max-width:min(650px,calc(100% - 28px));width:max-content;background:#22443e;border:1px solid #468376;color:#e3fff5;border-radius:12px;padding:14px 20px;box-shadow:0 10px 35px #0009;font-size:.9375rem}#toast.error{background:#442832;border-color:#a56270;color:#ffe4e9}[hidden]{display:none!important}.top-gap{margin-top:20px}.bottom-gap{margin-bottom:20px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.admin-tag{font-size:.875rem;color:var(--muted);border-left:1px solid var(--line);padding-left:16px}
@media(min-width:1100px){.slots{grid-template-columns:repeat(4,minmax(0,1fr))}.slot{padding:17px 14px}.slot .time{font-size:1.4rem}}
@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start;max-width:none}.header-inner{padding:16px 22px}.header-actions{gap:11px}.main{padding:28px 22px 45px}.login-layout{gap:30px}.panel{padding:20px}}
@media(max-width:680px){.main{padding:24px 16px 35px}.header-inner{padding:14px 16px;gap:10px;flex-wrap:wrap}.brand{font-size:.9375rem}.brand img{width:31px;height:31px}.header-actions{gap:12px}.user-chip{display:none}.admin-tag{display:none}.header-actions .btn{padding:6px 9px;font-size:.875rem;min-height:35px}h1{font-size:1.55rem}.layout{display:flex;flex-direction:column}.layout>section,.aside{width:100%}.aside{position:static}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.slot{padding:17px}.slot .time{font-size:1.4rem}.event-select{max-width:100%}.event-heading{margin-bottom:24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:13px 17px}.stat .value{font-size:1.65rem}.login-layout{display:flex;flex-direction:column;gap:30px;margin:18px 0}.login-main,.login-layout .panel{width:100%}.login-main h1{font-size:2rem}.login-main .btn{width:100%}.field-row{grid-template-columns:1fr;gap:0}.modal-actions .btn{flex:1}.admin-controls .btn{flex:1}.admin-slot-header{padding:13px 15px}.admin-slot-content{padding:15px}.spotlight{padding:18px}.footer{padding:20px 16px}dialog{padding:22px 18px}.row-actions .btn{min-height:42px}.event-meta{gap:7px 18px}.tabs{gap:0}.tab{padding:11px 14px}.toolbar input{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
