:root{--bg:#fff;--surface:#fff;--secondary:#e6e6e6;--secondary-hover:#d9d9d9;--border:#e6e6e6;--border-strong:#d0d0d0;--text:#1a1f2e;--muted:#667085;--accent:#232f53;--accent-hover:#1a2440;--accent-soft:#eef1f7;--primary:#232f53;--primary-hover:#1a2440;--danger:#b42318;--danger-hover:#921a12;--success:#197741;--warning:#b25e09;--radius:8px;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;font-size:15px;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 .5rem;font-size:1.5rem}h2{margin:1.5rem 0 .75rem;font-size:1.2rem}h3{margin:1rem 0 .5rem;font-size:1.05rem}.container{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}.page-title{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.page-title h1{margin:0}.page-logo{flex:none;width:auto;height:40px}.container-narrow{max-width:520px;margin:0 auto;padding:1.5rem 1rem 4rem}.app-header{background:var(--accent);border-bottom:1px solid var(--accent);box-shadow:var(--shadow);padding:.85rem 1rem}.app-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:960px;margin:0 auto;display:flex}.app-header .brand{color:#fff;letter-spacing:.02em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:inline-flex}.header-logo{background:#fff;border-radius:6px;width:auto;height:30px;padding:3px 6px}.app-header a{color:#fff}.app-header a:hover{color:#fff;opacity:.85;text-decoration:none}.app-nav{align-items:center;gap:1.25rem;display:flex}.app-nav a{font-size:.92rem}.app-header .btn-secondary{color:#fff;background:0 0;border-color:#ffffff80}.app-header .btn-secondary:hover{background:#ffffff1f}.app-nav a.active{text-underline-offset:5px;font-weight:700;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.25rem}label{margin:.75rem 0 .25rem;font-size:.9rem;font-weight:600;display:block}input,select,textarea{border:1px solid var(--border);width:100%;font:inherit;background:#fff;border-radius:8px;padding:.55rem .7rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}textarea{resize:vertical;min-height:70px}.service-select-label{font-size:1.2rem;font-weight:800}.service-select-hint{color:var(--accent);margin:.15rem 0 .5rem;font-size:.95rem;font-weight:600}.service-select{appearance:none;background-color:#fff;padding:.7rem 2.5rem .7rem .9rem;font-size:1.15rem;font-weight:700}.service-select-wrap{position:relative}.service-select-pointer{pointer-events:none;font-size:1.6rem;line-height:1;animation:1.1s ease-in-out infinite service-select-point;position:absolute;top:50%;right:.35rem;transform:translateY(-40%)}@keyframes service-select-point{0%,to{transform:translateY(-20%)}50%{transform:translateY(-55%)}}button,.btn{font:inherit;cursor:pointer;background:var(--primary);color:#fff;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-weight:600;transition:background .15s;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--primary-hover);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--secondary);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--secondary-hover)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:.35rem .7rem;font-size:.85rem}.btn-block{width:100%}.muted{color:var(--muted)}.small{font-size:.85rem}.row{flex-wrap:wrap;gap:.75rem;display:flex}.row>*{flex:1;min-width:0}.stack>*+*{margin-top:.5rem}.center{text-align:center}.mt-2{margin-top:1rem}.ml-1{margin-left:.4rem}.badge{color:#374151;background:#e5e7eb;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-pending{color:#92400e;background:#fef3c7}.badge-confirmed{color:#166534;background:#dcfce7}.badge-cancelled{color:#991b1b;background:#fee2e2}.badge-completed{color:#3730a3;background:#e0e7ff}.alert{border-radius:8px;margin:.75rem 0;padding:.7rem 1rem;font-size:.9rem}.alert-error{color:#991b1b;background:#fee2e2}.alert-success{color:#166534;background:#dcfce7}.alert-info{color:#1e40af;background:#dbeafe}table.data{border-collapse:collapse;width:100%;font-size:.9rem}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .6rem}table.data th{color:var(--muted);font-weight:600}table.data tr.subrow{background:var(--accent-soft);color:var(--muted);font-size:.85rem}.table-scroll{overflow-x:auto}.slot-day{margin-bottom:1rem}.slot-day h3{margin-bottom:.4rem}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.4rem;display:grid}.slot{text-align:center;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:.5rem;font-size:.9rem;font-weight:600}.slot:hover{border-color:var(--accent);background:var(--accent-soft)}.slot.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.slot .remaining{opacity:.8;font-size:.7rem;font-weight:400;display:block}.slot-grid-selectable{-webkit-user-select:none;user-select:none}.slot-gap{border-top:1px dashed var(--border-strong);grid-column:1/-1;margin:2px 0}.booking-form-card,.day-slots-anchor{scroll-margin-top:1rem}.selected-slot-banner{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:999px;margin:.25rem 0 .75rem;padding:.3rem .85rem;font-size:.9rem;font-weight:600;display:inline-block}@keyframes slotFormFlash{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:var(--shadow)}}.slot-form-flash{animation:1.2s ease-out slotFormFlash}@media (prefers-reduced-motion:reduce){.slot-form-flash{animation:none}}.loading{color:var(--muted);padding:1rem 0}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:90%;max-width:440px;box-shadow:var(--shadow);max-height:90vh;padding:1.5rem;overflow-y:auto}.view-toggle{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.view-toggle button{color:var(--text);background:#fff;border:none;border-radius:0;padding:.4rem .9rem;font-size:.88rem}.view-toggle button.active{background:var(--accent);color:#fff}.view-toggle button:hover:not(.active){background:var(--secondary)}.mcal-header{justify-content:center;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.mcal-title{text-align:center;min-width:8rem;font-size:1.1rem;font-weight:700}.mcal-grid{border:1px solid var(--border);border-radius:var(--radius);background:var(--border);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;width:100%;display:grid;overflow:hidden}.mcal-cell{min-width:0}.cal-chip,.cal-avail,.cal-closed{max-width:100%}.mcal-dow{background:var(--secondary);text-align:center;color:var(--text);padding:.4rem 0;font-size:.82rem;font-weight:600}.mcal-dow.sun{color:#b42318}.mcal-dow.sat{color:var(--accent)}.mcal-cell{background:#fff;flex-direction:column;gap:.2rem;min-height:92px;padding:.3rem;display:flex;position:relative}.mcal-cell.out{background:#fafafa}.mcal-cell.out .mcal-date{color:#c4c4c4}.mcal-cell.today{background:var(--accent-soft)}.mcal-cell.today .mcal-date{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.mcal-cell.clickable{cursor:pointer}.mcal-cell.clickable:hover{background:var(--accent-soft)}.mcal-date{font-size:.85rem;font-weight:600}.mcal-body{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.cal-chip{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;cursor:pointer;border-radius:4px;padding:1px 5px;font-size:.72rem;overflow:hidden}.cal-chip:hover{filter:brightness(.95)}.cal-chip.active{outline:2px solid var(--accent);outline-offset:1px}.cal-chip.confirmed{color:#166534;background:#dcfce7}.cal-chip.pending{color:#92400e;background:#fef3c7}.cal-chip.cancelled{color:#94a3b8;background:#f1f5f9;text-decoration:line-through}.cal-chip.completed{color:#3730a3;background:#e0e7ff}.cal-chip.block{color:#991b1b;background:#fee2e2}.note-chip{cursor:pointer;position:relative}.note-chip-label{color:#9a3412;white-space:nowrap;text-overflow:ellipsis;background:#fff7ed;border:1px solid #fed7aa;border-radius:4px;max-width:100%;padding:1px 5px;font-size:.72rem;display:block;overflow:hidden}.note-popover{z-index:50;color:#fff;white-space:pre-wrap;word-break:break-word;background:#1a1f2e;border-radius:6px;min-width:180px;max-width:280px;margin-top:2px;padding:.5rem .7rem;font-size:.8rem;line-height:1.5;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000040}.cal-more{color:var(--muted);cursor:pointer;padding-left:2px;font-size:.7rem}.cal-more:hover{color:var(--accent);text-decoration:underline}.detail-panel{border:1px solid var(--border-strong);border-radius:var(--radius);background:#fafafa;margin-top:1rem;padding:1rem}.cal-main{min-width:0}@media (width>=900px){.cal-layout.has-detail{align-items:flex-start;gap:1rem;display:flex}.cal-layout.has-detail .cal-main{flex:auto;min-width:0}.cal-layout.has-detail .detail-panel{flex:0 0 300px;align-self:flex-start;width:300px;margin-top:0;position:sticky;top:1rem}}@media (width>=1100px){.admin-container{max-width:1200px}}.detail-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.detail-table{border-collapse:collapse;width:100%;font-size:.9rem}.detail-table th{text-align:left;color:var(--muted);vertical-align:top;white-space:nowrap;width:6rem;padding:.35rem .6rem .35rem 0;font-weight:600}.detail-table td{padding:.35rem 0}.cal-avail{margin-top:auto;font-size:.75rem}.cal-avail.has{color:var(--success);font-weight:600}.cal-avail.none{color:var(--muted)}.cal-closed{color:#cbd5e1;font-size:.72rem}@media (width<=640px){.mcal-cell{min-height:64px}.cal-chip{font-size:.65rem}}
