html{scrollbar-gutter:stable both-edges;font-size:75%}:root{--color-canvas:#f4f7fb;--color-canvas-soft:#eef2f8;--color-surface:#ffffff;--color-surface-muted:#f8fafc;--color-text:rgba(17,24,39,0.92);--color-text-muted:rgba(75,85,99,0.82);--color-brand:#1a73e8;--color-brand-accent:#4f46e5;--color-brand-dark:#0f172a;--color-border:rgba(15,23,42,0.12);--radius-card:20px;--radius-pill:999px;--shadow-soft:0 1px 2px rgba(15,23,42,0.06),0 12px 28px rgba(15,23,42,0.08);--shadow-nav:0 8px 24px rgba(15,23,42,0.12);--space-1:0.4rem;--space-2:0.8rem;--space-3:1.6rem;--space-4:2.4rem;--space-5:3.2rem;--space-6:4.8rem}body{margin:0;min-height:100vh;color:var(--color-text);background:radial-gradient(circle at top left,rgba(26,115,232,0.12),transparent 28%),linear-gradient(180deg,var(--color-canvas) 0%,#fff 340px,var(--color-canvas-soft) 100%);font-family:"Roboto","Noto Sans JP","Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;line-height:1.6;letter-spacing:-0.01em}body.app-shell{padding-bottom:var(--space-5)}.container{width:min(100% - 2.4rem,1200px);margin:0 auto}.card,.admin-reservation-card,.history-card,.types-card,.admin-create-panel,.login-card,.backup-panel,.login-log-panel{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);border:1px solid rgba(15,23,42,0.08)}.btn{border-radius:1.2rem;min-height:4.8rem;padding:0 1.6rem;border:1px solid transparent;transition:transform 0.2s ease,background-color 0.2s ease,border-color 0.2s ease;font-weight:600}.btn:active{transform:scale(0.95)}.btn-primary,.btn-success{color:#fff;background:var(--color-brand);border-color:var(--color-brand)}.btn-outline-primary,.btn-outline-success,.btn-outline-secondary,.btn-outline-danger,.btn-outline-light{background:transparent}.btn-secondary{color:var(--color-brand-dark);border-color:rgba(15,23,42,0.16);background:#fff}.form-control,.form-select{min-height:4.8rem;border-radius:1.2rem;border:1px solid rgba(15,23,42,0.14);background:#fff;color:var(--color-text)}.form-control:focus,.form-select:focus{border-color:var(--color-brand);box-shadow:0 0 0 0.4rem rgba(26,115,232,0.14)}.site-footer{margin-top:var(--space-6);padding:0 0 var(--space-4);color:var(--color-text-muted);font-size:1.2rem;line-height:1.5}.site-footer a{color:var(--color-brand)}.hero-panel{display:grid;gap:var(--space-2);margin-bottom:var(--space-4);border-radius:2.4rem;background:linear-gradient(135deg,rgba(26,115,232,0.14),rgba(79,70,229,0.08)),#ffffff;color:var(--color-text);box-shadow:var(--shadow-soft);border:1px solid rgba(15,23,42,0.08)}.hero-kicker{font-size:1.2rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-brand)}.hero-panel h1,.hero-panel h2,.hero-panel h3,.hero-panel p{margin:0}.hero-panel p{color:var(--color-text-muted);max-width:72rem}.section-intro{display:grid;gap:var(--space-2);margin-bottom:var(--space-2)}.section-intro h2,.section-intro h3,.section-intro p{margin:0}.helper-text{color:var(--color-text-muted);font-size:1.3rem}.page-stack{display:grid;gap:var(--space-3);padding-top:var(--space-4);padding-bottom:var(--space-4)}.global-nav{position:sticky;top:0;z-index:1030;background:rgba(255,255,255,0.88);color:var(--color-text);box-shadow:var(--shadow-nav);backdrop-filter:blur(16px);border-bottom:1px solid rgba(15,23,42,0.08)}.global-nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-2);padding-bottom:var(--space-2)}.brand-lockup{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);text-decoration:none;min-width:0}.brand-lockup__mark{display:inline-flex;align-items:center;justify-content:center;min-width:9.6rem;height:3.6rem;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-brand);color:#fff;font-size:1.4rem;font-weight:700;letter-spacing:0.12em}.brand-lockup__title{font-size:1.3rem;color:var(--color-text-muted);letter-spacing:0.08em;text-transform:uppercase}.nav-pills{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--space-2);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav-pills::-webkit-scrollbar{display:none}.nav-pill{display:inline-flex;align-items:center;justify-content:center;min-height:3.6rem;padding:0 1.4rem;border-radius:var(--radius-pill);border:1px solid rgba(15,23,42,0.08);color:var(--color-text);text-decoration:none;font-size:1.4rem;font-weight:600;background:rgba(15,23,42,0.02);flex-shrink:0;white-space:nowrap}.nav-pill:hover,.nav-pill:focus-visible{background:rgba(26,115,232,0.08);color:var(--color-brand)}.nav-pill.is-active{background:rgba(26,115,232,0.12);color:var(--color-brand);border-color:rgba(26,115,232,0.18)}.nav-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.nav-action-btn{min-height:3.6rem;padding:0 1.4rem;font-size:1.4rem;color:var(--color-text);border-color:rgba(15,23,42,0.16)}.nav-action-btn:hover{border-color:rgba(26,115,232,0.28);background:rgba(26,115,232,0.08)}.hero-panel{display:grid;gap:var(--space-2);margin-bottom:0;padding:var(--space-5);border-radius:2.4rem;background:linear-gradient(135deg,rgba(26,115,232,0.14),rgba(79,70,229,0.08)),#ffffff;color:var(--color-text);box-shadow:var(--shadow-soft);border:1px solid rgba(15,23,42,0.08)}.hero-panel--split{grid-template-columns:minmax(0,1.25fr) minmax(260px,0.75fr);align-items:stretch}.hero-copy{display:grid;gap:var(--space-2)}.hero-visual{display:flex;align-items:stretch}.hero-visual__panel{width:100%;padding:var(--space-4);border-radius:1.6rem;background:rgba(26,115,232,0.06);border:1px solid rgba(26,115,232,0.12);display:grid;gap:var(--space-3)}.hero-visual__label{font-size:1.2rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-brand)}.hero-steps{margin:0;padding-left:1.8rem;display:grid;gap:var(--space-2);color:var(--color-text);font-size:1.5rem}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.info-chip,.status-chip{display:inline-flex;align-items:center;min-height:3.2rem;padding:0 1.2rem;border-radius:var(--radius-pill);background:rgba(26,115,232,0.10);color:var(--color-brand);font-size:1.3rem;font-weight:600}.section-card{overflow:hidden}.section-card__body{display:grid;gap:var(--space-4)}.stack-form,.field-stack{display:grid;gap:var(--space-2)}.btn-large{min-height:5.2rem;padding:0 2rem;font-size:1.5rem}.table-shell{overflow:hidden;border-radius:1.4rem;border:1px solid rgba(15,23,42,0.08)}.callout-band{padding:var(--space-4);border-radius:1.4rem;background:var(--color-brand-dark);color:#fff}.login-layout{max-width:112rem}.login-layout .hero-panel{margin-top:var(--space-4)}.login-card .card-body{padding:var(--space-5)}.history-card-shell,.admin-card-shell,.types-card-shell{overflow:hidden;border-radius:1.4rem;border:1px solid rgba(15,23,42,0.08);background:#fff}.history-scroll,.admin-scroll,.types-scroll{padding:var(--space-4);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.types-scroll{overflow:visible}.history-card-list,.admin-card-list,.types-card-list{display:flex;gap:var(--space-3);min-width:max-content}.types-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));min-width:0}.types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.history-card,.admin-reservation-card,.type-card,.types-card{width:280px;min-height:100%;padding:var(--space-4);display:grid;gap:var(--space-3);background:#fff;border:1px solid rgba(30,57,50,0.12);border-radius:1.4rem;box-shadow:var(--shadow-soft)}.type-card,.types-card{width:auto}.history-card__header,.admin-reservation-card__header,.type-card__top,.types-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.history-card__label,.admin-reservation-card__label,.type-card__eyebrow,.types-card__label{font-size:1.2rem;font-weight:700;color:var(--color-text-muted);letter-spacing:0.08em;text-transform:uppercase}.history-card__value,.admin-reservation-card__value,.type-card__title,.types-card__value{margin-top:0.4rem;font-size:2.4rem;line-height:1.1;font-weight:700;color:var(--color-brand-dark);word-break:break-word}.type-card__price{font-size:1.5rem;font-weight:700;color:var(--color-brand)}.types-card__price-label{font-size:1.3rem;color:var(--color-text-muted)}.history-card__meta,.admin-reservation-card__meta,.types-card__meta{margin:0;display:grid;gap:var(--space-2)}.history-card__meta div,.admin-reservation-card__meta div,.types-card__meta div{display:grid;gap:0.2rem}.history-card__meta dt,.admin-reservation-card__meta dt,.types-card__meta dt{font-size:1.1rem;font-weight:700;color:var(--color-text-muted)}.history-card__meta dd,.admin-reservation-card__meta dd,.types-card__meta dd{margin:0;font-size:1.4rem;font-weight:600;color:var(--color-text);word-break:break-word}.history-card__status,.admin-reservation-card__status,.type-card__status,.types-card__status{display:flex;align-items:flex-start;justify-content:flex-end}.history-card__status .badge,.admin-reservation-card__status .badge,.type-card__status .badge{min-height:3rem}.history-card__image,.type-card__image,.types-card__image-preview{overflow:hidden;border-radius:1.2rem;border:1px solid rgba(30,57,50,0.12);background:var(--color-canvas-soft)}.type-card__image img,.history-card__image img,.types-card__image-preview img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.type-card__section{display:grid;gap:var(--space-1)}.type-card__actions,.types-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.types-card__flavor-edit,.types-card__name-edit,.types-card__price-edit,.types-card__image-edit{display:grid;gap:var(--space-1)}.info-row,.type-count-summary-row,.history-footer-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between}.info-label{font-size:1.4rem;font-weight:700;color:var(--color-text-muted)}.history-page-indicator{font-size:1.4rem;font-weight:700;color:var(--color-brand-dark)}.admin-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.admin-create-panel{padding:var(--space-4)}.admin-create-textarea{min-height:18rem;resize:vertical}.admin-create-example{display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:1.2rem;background:var(--color-canvas-soft)}.admin-create-example code{display:inline-flex;width:fit-content;padding:0.2rem 0.8rem;border-radius:var(--radius-pill);background:#fff;color:var(--color-brand-dark)}.history-pagination{margin-top:var(--space-4)}.user-badge{position:fixed;bottom:0;right:0;margin:var(--space-4);padding:var(--space-2) var(--space-3);background:rgba(30,57,50,0.92);color:#fff;border-radius:var(--radius-pill);box-shadow:var(--shadow-nav);z-index:1040;display:inline-flex;align-items:center;gap:var(--space-2);font-size:1.2rem;font-weight:700}.user-badge:hover{text-decoration:none;color:#fff}@media (max-width:960px){.hero-panel--split,.admin-create-grid{grid-template-columns:1fr}.global-nav__inner{flex-wrap:wrap;justify-content:center}.nav-actions{width:100%;justify-content:center}}@media (max-width:760px){.page-stack{gap:var(--space-3);padding-top:var(--space-3)}.global-nav__inner{gap:var(--space-2)}.brand-lockup{width:100%;justify-content:center}.nav-pills{width:100%;justify-content:flex-start;justify-content:safe center}.nav-pill{min-height:3.2rem;font-size:1.2rem}.hero-panel{padding:var(--space-4)}.history-card,.admin-reservation-card{width:240px}.user-badge{right:0;left:0;justify-content:center;margin:var(--space-3)}}@media (max-width:480px){.brand-lockup__mark{min-width:8.4rem;font-size:1.2rem}.hero-copy h1,.hero-panel h1{font-size:2.8rem}.nav-action-btn{width:100%}.nav-actions{flex-direction:column}}.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0}.nav-icon{width:16px;height:16px;display:inline-block;vertical-align:middle;flex:0 0 auto;object-fit:contain}.nav-icon-history{width:21px;height:21px}.nav-icon-type{width:19.2px;height:19.2px}.site-footer-inner{width:min(100% - 32px,1200px);margin:0 auto}@media (max-width:760px){.site-footer{padding-bottom:var(--space-3)}.site-footer-inner{width:calc(100% - 24px)}}.navbar{margin-bottom:var(--space-6);padding:var(--space-4) 0;color:#fff;background:var(--color-nav);box-shadow:var(--shadow-1)}.navbar .container{width:min(100% - 32px,1200px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.navbar-brand{font-size:1.125rem;font-weight:700;letter-spacing:0.02em}.responsive-label-full{display:inline}.responsive-label-short{display:none}@media (max-width:576px){.responsive-label-full{display:none}.responsive-label-short{display:inline}}body.sidebar-layout{padding-left:180px}body.sidebar-layout .navbar{position:fixed;inset:0 auto 0 0;width:180px;margin-bottom:0;padding:var(--space-5) var(--space-4);z-index:1030}body.sidebar-layout .navbar .container{width:100%;min-height:100%;margin:0;flex-direction:column;align-items:stretch;justify-content:flex-start}body.sidebar-layout .navbar-brand{padding-bottom:var(--space-4);border-bottom:1px solid rgba(255,255,255,0.12)}body.sidebar-layout .sidebar-nav-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2)}body.sidebar-layout .sidebar-nav-actions .btn,body.sidebar-layout .sidebar-nav-actions form{width:100%}body.sidebar-layout .sidebar-nav-actions form .btn{width:100%}@media (max-width:576px){body.sidebar-layout .navbar-brand{padding-bottom:var(--space-3)}body.sidebar-layout{padding-left:150px !important}body.sidebar-layout .navbar{width:150px !important;padding:var(--space-4) var(--space-3)}body.sidebar-layout .sidebar-nav-actions{gap:var(--space-1)}body.sidebar-layout .sidebar-nav-actions .btn{font-size:0.75rem;min-height:36px;padding:0 var(--space-2)}}@media (max-width:760px){body.sidebar-layout{padding-left:0 !important}body.sidebar-layout .navbar{position:relative !important;inset:auto !important;width:100% !important;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-3) !important}body.sidebar-layout .navbar .container{min-height:auto;margin:0 auto;flex-direction:row;align-items:center;justify-content:space-between}body.sidebar-layout .navbar-brand{padding-bottom:0;border-bottom:none}body.sidebar-layout .sidebar-nav-actions{display:flex;flex-direction:row;align-items:center;gap:var(--space-2)}body.sidebar-layout .sidebar-nav-actions .btn,body.sidebar-layout .sidebar-nav-actions form{width:auto}}.user-badge{position:fixed;bottom:0;left:0;margin:var(--space-4,16px);padding:var(--space-2,8px) var(--space-3,12px);background-color:rgba(30,41,59,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f8fafc;border-radius:var(--radius-md,8px);font-size:0.8125rem;font-weight:700;box-shadow:0 4px 12px rgba(15,23,42,0.15);border:1px solid rgba(255,255,255,0.1);z-index:1040;max-width:148px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:var(--space-2,8px);transition:opacity 0.2s ease,transform 0.2s ease}.user-badge:hover{background-color:rgba(30,41,59,0.95);transform:translateY(-1px);text-decoration:none;color:#f8fafc}.user-badge-icon{font-size:0.875rem;opacity:0.9;flex-shrink:0}@media (max-width:760px){.user-badge{margin:var(--space-3,12px);max-width:calc(100% - 24px)}}.filter-sort-row{display:flex;flex-wrap:nowrap;gap:var(--space-3);margin-bottom:var(--space-3)}.filter-sort-col{flex:1 1 50%;min-width:0}@media (max-width:576px){.filter-sort-row{gap:var(--space-2)}.filter-sort-row .form-select{padding:0 var(--space-2);font-size:0.875rem}}