:root{color-scheme:light;--bg: #f6f2ea;--surface: rgba(255, 255, 255, .82);--surface-strong: #fffdf9;--line: rgba(87, 72, 55, .14);--text: #2a2018;--muted: #6f6050;--accent: #b85c38;--accent-soft: rgba(184, 92, 56, .12);--success: #2e7d32;--danger: #bb3e03;--shadow: 0 18px 40px rgba(76, 52, 32, .12);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at top left,rgba(255,220,185,.55),transparent 35%),radial-gradient(circle at top right,rgba(214,226,255,.55),transparent 30%),linear-gradient(180deg,#f7f2eb,#f2ece2)}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:14px;padding:11px 14px;transition:transform .14s ease,background .14s ease,opacity .14s ease}button:hover{transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45;transform:none}.shell{width:min(1180px,calc(100% - 32px));margin:32px auto 48px}.hero{position:relative;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.hero-corner-actions{position:absolute;top:0;right:0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hero h1{margin:0 0 10px;font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:-.03em}.hero p{margin:0;max-width:720px;color:var(--muted);line-height:1.6}.hero-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.install-helper{margin-top:10px;max-width:28rem}.hero-link-admin{gap:10px;min-height:48px;padding:0 18px;border-radius:999px;border:1px solid rgba(42,32,24,.12);background:#fffdf9e0;color:var(--text);box-shadow:0 10px 24px #4c342014}.hero-link-admin:hover{background:#fff}.hero-install-button{min-height:48px;padding:0 18px;border-radius:999px;border:1px solid rgba(184,92,56,.18);background:#b85c3814;color:var(--accent)}.pill{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-size:.95rem;margin-bottom:18px}.layout{display:grid;gap:24px}.layout.public{grid-template-columns:1fr}.layout.admin{grid-template-columns:minmax(280px,340px) 1fr}.panel{background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.75);border-radius:24px;box-shadow:var(--shadow)}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 16px}.panel-header h2,.panel-header h3{margin:0;font-size:1.2rem}.panel-body{padding:0 24px 24px}.layout.admin .panel-header{padding:18px 20px 12px}.layout.admin .panel-body{padding:0 20px 18px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.calendar-toolbar-bottom{margin-top:18px;margin-bottom:0}.layout.admin .calendar-panel .calendar-toolbar{position:sticky;top:0;z-index:4;padding-top:6px;background:#fffdf9f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.month-label{font-size:clamp(1.3rem,2vw,1.8rem);font-weight:700}.toolbar-actions{display:flex;gap:10px}.btn-secondary{background:#efe3d4;color:var(--text)}.btn-primary{background:var(--accent);color:#fff}.btn-danger{background:#fff1eb;color:var(--danger)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.weekday{position:sticky;top:0;z-index:3;padding:10px 12px;color:var(--muted);font-size:.92rem;text-align:center;background:#f7f2ebf0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px}.layout.admin .calendar-panel .weekday{top:68px;z-index:3}.weekday.is-weekend{color:var(--danger)}.day-card{min-height:146px;padding:14px;border-radius:18px;border:1px solid var(--line);background:var(--surface-strong);display:flex;flex-direction:column;gap:12px;text-align:left}.day-card.is-muted{opacity:.45}.day-card.is-today{background:linear-gradient(180deg,#ffecd6fa,#fff8f0fa);border-color:#b85c384d}.day-card.is-selected{outline:2px solid rgba(184,92,56,.4);box-shadow:inset 0 0 0 1px #b85c3833}.day-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.day-number{font-size:1.34rem;font-weight:700;line-height:1}.day-number.is-outside-month{font-size:1rem;letter-spacing:.01em}.day-number.is-weekend{color:var(--danger)}.day-content{margin-top:auto;display:flex;flex-direction:column;gap:8px}.schedule-badge{display:inline-flex;width:fit-content;padding:10px 14px;border-radius:999px;font-size:1.08rem;font-weight:700;line-height:1.2;letter-spacing:.02em}.schedule-badge-start{background:var(--accent-soft);color:var(--accent)}.schedule-badge-end{background:#2e7d3224;color:#2f7d32}.rest-label{color:#2f7d32;font-size:1.12rem;font-weight:700;line-height:1.3;text-align:center}.holiday-note{color:var(--danger);font-size:.94rem;font-weight:700;line-height:1.35;text-align:center}.calendar-status-note{margin-bottom:14px}.form-stack{display:grid;gap:16px}.layout.admin .form-stack{gap:12px}.field{display:grid;gap:8px}.layout.admin .field{gap:6px}.field label{font-size:.92rem;color:var(--muted)}.text-input,.time-input{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fff}.time-select-group{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}.time-separator{color:var(--muted);font-weight:700}.helper{color:var(--muted);font-size:.9rem;line-height:1.5}.layout.admin .helper{line-height:1.35}.selection-helper{padding-top:8px}.selection-helper.is-error{color:var(--danger)}.selection-helper.is-success{color:var(--success)}.inline-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.action-row{flex-wrap:nowrap}.action-row .btn-primary,.action-row .btn-danger{flex:1 1 0;white-space:nowrap}.divider{height:1px;background:var(--line);margin:8px 0}.layout.admin .action-row{gap:8px}.admin-audit-button{padding-left:16px;padding-right:16px;border-radius:999px;white-space:nowrap}.audit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;justify-content:center;align-items:flex-start;padding:32px 16px;background:#2a201838;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.audit-panel{width:min(860px,100%);max-height:min(84vh,920px);overflow:hidden;background:#fffbf5f5;border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 28px 64px #4c342033}.audit-panel-header{position:sticky;top:0;z-index:1;background:#fffbf5f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(87,72,55,.08)}.audit-panel-body{max-height:calc(min(84vh,920px) - 84px);overflow:auto}.audit-empty-state{padding-top:12px}.audit-list{display:grid;gap:12px}.audit-item{display:grid;gap:6px;padding:16px 18px;border-radius:18px;background:#ffffffd9;border:1px solid rgba(87,72,55,.1)}.audit-item-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.audit-change{color:var(--text);font-size:1rem;font-weight:700}@media(max-width:900px){.layout.admin{grid-template-columns:1fr;padding-bottom:260px}.hero{flex-direction:column;padding-top:64px}.hero-corner-actions{top:0;right:0}.admin-sheet{position:fixed;left:16px;right:16px;bottom:16px;z-index:40;max-height:min(46vh,360px);overflow:auto;border-radius:24px;box-shadow:0 24px 50px #4c34202e}.admin-sheet .panel-header{position:sticky;top:0;z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf9f0;border-bottom:1px solid rgba(87,72,55,.08)}.audit-overlay{padding:20px 12px;align-items:stretch}.audit-panel,.audit-panel-body{max-height:none}}@media(max-width:640px){.shell{width:min(100% - 20px,100%);margin-top:20px}.panel-header,.panel-body{padding-left:16px;padding-right:16px}.calendar-grid{gap:8px}.day-card{min-height:100px;padding:10px 0;align-items:center}.day-content{align-items:center}.hero{padding-top:0}.hero-corner-actions{position:static;width:100%;margin-bottom:12px}.hero-link-admin,.hero-install-button{flex:1 1 0;justify-content:center}.action-row{flex-wrap:wrap}.layout.admin{padding-bottom:250px}.admin-sheet{left:10px;right:10px;bottom:10px;max-height:min(48vh,340px);border-radius:22px}.audit-panel-header,.audit-item-top{display:grid;gap:8px}.schedule-badge{writing-mode:sideways-rl;padding:9px 2px;line-height:1.5;letter-spacing:.02em}}
