:root{--background:#f6f8fb;--foreground:#172033;--muted:#617089;--line:#d8e0ec;--panel:#fff;--accent:#1d6f8f;--accent-strong:#0f5f78;--danger:#b42318;--warm:#fff3cf;--holiday:#ffe4e6;--highlight:#e8590c;--highlight-strong:#c2410c}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);margin:0;font-family:Arial,Apple SD Gothic Neo,Malgun Gothic,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.loading,.setup-page{place-items:center;min-height:100svh;padding:24px;display:grid}.setup-panel,.dialog{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:min(920px,100%);box-shadow:0 24px 80px #17203324}.setup-panel{padding:28px}.setup-heading{margin-bottom:22px}.eyebrow{color:var(--accent-strong);margin:0 0 4px;font-size:13px;font-weight:700}h1,h2{margin:0;line-height:1.2}.app-shell{min-height:100svh}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:18px;padding:22px clamp(16px,4vw,44px);display:flex}.top-actions,.admin-actions,.dialog-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.primary-button,.secondary-button,.ghost-button,.danger-button,.highlight-button,.small-button,.icon-button,.primary-link,.secondary-link{white-space:nowrap;border:1px solid #0000;border-radius:6px;min-height:40px;padding:0 14px;font-weight:700}.primary-button,.primary-link{background:var(--accent);color:#fff}.file-button{cursor:pointer;align-items:center;display:inline-flex}.file-button.disabled{opacity:.55;pointer-events:none}.secondary-button,.secondary-link{color:#0c5369;background:#e7f2f6;border-color:#b9d6e0}.highlight-button{background:var(--highlight);color:#fff;border-color:var(--highlight-strong);box-shadow:0 0 0 3px color-mix(in srgb, var(--highlight), transparent 75%)}.highlight-button:hover{background:var(--highlight-strong)}.ghost-button{color:var(--foreground);border-color:var(--line);background:#fff}.danger-button{color:var(--danger);background:#fff1f0;border-color:#ffccc7;margin-right:auto}.dialog-actions.delete-confirm .danger-button{margin-right:0}.delete-confirm-text{color:var(--danger);flex:auto;font-size:13px;font-weight:700}.small-button{border-color:var(--line);background:#f8fafc;min-height:32px;padding:0 10px}.icon-button{border-color:var(--line);background:#f8fafc;width:40px;padding:0;font-size:24px}.primary-link,.secondary-link{align-items:center;text-decoration:none;display:inline-flex}.page-copy{color:var(--muted);margin:12px 0 18px}.control-band{background:#eef5f8;border-bottom:1px solid #cfe0e7;flex-wrap:wrap;align-items:end;gap:12px;padding:14px clamp(16px,4vw,44px);display:flex}.year-stepper{align-items:end;gap:8px;display:flex}.year-stepper label{min-width:128px}.year-nav-button{padding-inline:10px}label,.field-block{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.field-help{color:var(--muted);font-size:12px;font-weight:500;line-height:1.45}input,select{border:1px solid var(--line);min-height:42px;color:var(--foreground);background:#fff;border-radius:6px;min-width:0;padding:0 11px}.memo-input{border:1px solid var(--line);color:var(--foreground);min-width:0;font:inherit;resize:vertical;background:#fff;border-radius:6px;padding:9px 11px}input[type=file]{height:auto;padding-block:9px}.inline-unlock{align-items:end;gap:8px;display:flex}.filter-band{gap:6px;display:grid;position:relative}.filter-label{color:var(--muted);font-size:13px;font-weight:700}.filter-toggle.active{color:#0c5369;background:#eef5f8;border-color:#b9d6e0}.filter-panel{z-index:20;border:1px solid var(--line);background:#fff;border-radius:8px;min-width:200px;max-height:320px;padding:10px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0f172a1f}.filter-panel-header{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.filter-reset{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.filter-reset:disabled{color:var(--muted);cursor:default}.filter-panel ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.filter-check{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:flex}.filter-check input{width:16px;height:16px;min-height:auto}.search-band{min-width:220px;position:relative}.search-results{z-index:20;border:1px solid var(--line);background:#fff;border-radius:8px;max-height:320px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0f172a1f}.search-results ul{gap:2px;margin:0;padding:4px;list-style:none;display:grid}.search-results li button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;width:100%;min-height:auto;padding:8px 10px;font-weight:500;display:flex}.search-results li button:hover{background:#eef5f8}.search-result-date{color:var(--muted);flex:none;font-size:12px;font-weight:700}.search-result-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.search-result-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;margin-left:auto;font-size:12px;overflow:hidden}.search-empty{color:var(--muted);text-align:center;margin:0;padding:14px 10px;font-size:13px;font-weight:700}.status{color:#166534;background:#ecfdf3;border:1px solid #b7ebc6;border-radius:6px;margin:12px clamp(16px,4vw,44px) 0;padding:10px 12px;font-weight:700}.status.error{color:var(--danger);background:#fff1f0;border-color:#ffccc7}.date-click-hint{color:var(--muted);margin:10px clamp(16px,4vw,44px) 0;font-size:13px;font-weight:700}.print-surface{margin:18px clamp(16px,4vw,44px) 48px}.print-org-name{display:none}.print-title{justify-content:center;align-items:baseline;gap:12px;margin:18px 0;display:flex}.print-title p{color:var(--muted);margin:0;font-weight:700}.planner-table{border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #aeb9c8;width:100%}.planner-table th,.planner-table td{vertical-align:middle;word-break:keep-all;overflow-wrap:anywhere;border:1px solid #aeb9c8;padding:8px 7px}.planner-table th{text-align:center;background:#f3d9d9;font-size:15px}.planner-table th:first-child,.planner-table th:nth-child(2){width:48px}.planner-table th:nth-child(3){width:88px}.planner-table th:nth-child(4){width:116px}.planner-table th:nth-child(6){width:160px}.planner-table th:nth-child(7){width:110px}.date-cell,.time-cell{text-align:center}.date-button,.event-title,.mobile-event{color:inherit;text-align:left;background:0 0;border:0;padding:0}.date-button{text-align:center;width:100%;font-weight:800}.event-title{width:100%;line-height:1.35;display:block}.holiday-line{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.holiday-line span{color:#be123c;background:#fff1f2;border:1px solid #fecdd3;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.category-pill{border:1px solid color-mix(in srgb, var(--pill), #fff 45%);background:color-mix(in srgb, var(--pill), #fff 86%);min-height:24px;color:var(--pill);border-radius:999px;align-items:center;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.review-badge{color:#9a3412;vertical-align:middle;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;align-items:center;min-height:20px;margin-right:5px;padding:0 7px;font-size:11px;font-weight:800;display:inline-flex}.review-badge.dismissable{cursor:pointer}.review-badge.dismissable:hover,.review-badge.dismissable:focus-visible{background:#ffedd5;border-color:#fdba74}.memo-badge{color:#3730a3;text-transform:uppercase;vertical-align:middle;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;align-items:center;min-height:18px;margin-right:5px;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.untitled-event{color:var(--muted);font-weight:500}.memo-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--foreground);margin:0 0 18px;line-height:1.5}.memo-text a{color:var(--accent-strong)}.saturday-row td,.day-card.saturday-row{background:var(--warm)}.sunday-row td,.holiday-row td,.day-card.sunday-row,.day-card.holiday-row{background:var(--holiday)}.mobile-cards{display:none}.dialog-backdrop{z-index:20;background:#0f172a6b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog{max-height:min(760px,100svh - 36px);padding:22px;overflow:auto}.dialog>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.wide{grid-column:1/-1}.time-range-input{align-items:flex-end;gap:8px;display:flex}.time-range-field{flex:1 1 0;gap:4px;min-width:0;display:grid}.time-range-label{color:var(--muted);font-size:11px;font-weight:600}.time-range-sep{color:var(--muted);padding-bottom:8px;font-weight:700}.time-input{grid-template-columns:minmax(0,1fr) auto;display:grid}.time-input input{border-radius:6px 0 0 6px}.time-stepper{grid-template-rows:1fr 1fr;display:grid}.time-stepper button{border:1px solid var(--line);width:48px;min-height:21px;color:var(--foreground);background:#f8fafc;border-left:0;font-size:12px;font-weight:700}.time-stepper button:first-child{border-radius:0 6px 0 0}.time-stepper button:last-child{border-top:0;border-radius:0 0 6px}.service-box{border:1px solid var(--line);color:var(--muted);background:#f8fafc;border-radius:6px;gap:6px;padding:12px;display:grid}.service-box strong{color:var(--foreground);overflow-wrap:anywhere}.service-box small{color:var(--muted);line-height:1.45}.guide-box{color:var(--foreground);background:#f4f9fb;border:1px solid #cfe0e7;border-radius:6px;padding:12px}.guide-box summary{cursor:pointer;color:var(--accent-strong);font-weight:800}.guide-box ol{color:var(--muted);gap:7px;margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.45;display:grid}.install-help-steps{color:var(--foreground);gap:8px;margin:0 0 18px;padding-left:20px;font-size:14px;line-height:1.5;display:grid}.guide-box code{color:var(--foreground);font-size:12px;font-weight:800}.checkbox-label{align-items:center;gap:8px;display:flex}.checkbox-label input{width:16px;min-height:16px;margin:0}.admin-dialog{width:min(980px,100%)}.import-undo-banner{color:var(--foreground);background:#eef5f8;border:1px solid #cfe0e7;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-weight:700;display:flex}.import-preview{border:1px solid var(--line);background:#f8fafc;border-radius:8px;gap:12px;padding:14px;display:grid}.import-preview>header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.import-preview>header strong{font-size:16px}.import-preview>header span{color:var(--muted);font-size:13px}.import-warning-list summary{cursor:pointer;color:#9a3412;font-weight:800}.import-warning-list ul{color:var(--muted);gap:6px;max-height:220px;margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.45;display:grid;overflow-y:auto}.admin-sections{gap:18px;display:grid}.admin-page{min-height:100svh}.admin-page>.status{z-index:12;margin-top:0;position:sticky;top:0}.operator-guide{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:18px;padding:18px clamp(16px,4vw,44px) 0;display:grid}.operator-guide h2{font-size:22px}.operator-guide ol{grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.operator-guide li{border:1px solid var(--line);background:#fff;border-radius:8px;gap:6px;min-width:0;padding:12px;display:grid}.operator-guide strong{font-size:14px}.operator-guide span{color:var(--muted);font-size:13px;line-height:1.45}.admin-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);align-items:start;gap:18px;padding:18px clamp(16px,4vw,44px) 48px;display:grid}.tenant-table-wrap{overflow-x:auto}.tenant-table{border-collapse:collapse;background:#fff;width:100%}.tenant-table th,.tenant-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px}.tenant-table th{color:var(--muted);font-size:13px}.tenant-table a{color:var(--accent-strong);font-weight:700}.empty-day{color:var(--muted);margin:0}@media (max-width:760px){.loading,.setup-page{align-items:start;padding:14px}.setup-page{place-items:start center}.setup-panel{padding:18px}h1{overflow-wrap:anywhere;font-size:clamp(24px,7vw,34px)}h2{font-size:clamp(20px,5vw,26px)}.topbar{flex-direction:column;align-items:flex-start;gap:14px;padding:16px}.top-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.top-actions button,.top-actions a,.control-band,.control-band label,.year-stepper,.inline-unlock,.inline-unlock input,.inline-unlock button{width:100%}.control-band{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;padding:12px 16px;display:grid}.year-stepper{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;display:grid}.year-stepper label{min-width:0}.control-band .inline-unlock,.control-band .search-band,.control-band .filter-band{grid-column:1/-1}.inline-unlock{flex-direction:column;align-items:stretch}.top-actions button,.top-actions a,.admin-actions button{justify-content:center;min-width:0;padding-inline:10px}input,select{min-height:44px}.status{margin:10px 16px 0}.date-click-hint{display:none}.print-surface{margin:14px 16px 36px}.print-title{flex-wrap:wrap;justify-content:flex-start;gap:6px 10px;margin:0 0 10px}.planner-table{display:none}.mobile-cards{gap:8px;display:grid}.day-card{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px}.day-card header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.day-card header div{align-items:baseline;gap:6px;display:flex}.day-card header strong{font-size:20px}.empty-day{margin-top:4px;font-size:13px}.mobile-event{border-top:1px solid var(--line);gap:6px;width:100%;padding:9px 0;display:grid}.mobile-event span{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mobile-event em,.mobile-event small{color:var(--muted);overflow-wrap:anywhere;font-style:normal;line-height:1.35}.mobile-event strong{overflow-wrap:anywhere;font-size:15px;line-height:1.35}.dialog-backdrop{align-items:end;padding:0}.dialog{border-radius:12px 12px 0 0;width:100%;max-height:calc(100svh - 18px);padding:16px}.dialog>header{margin-bottom:14px}.form-grid{grid-template-columns:1fr;gap:12px}.dialog-actions{background:#fff;align-items:stretch;padding-top:10px;position:sticky;bottom:-16px}.dialog-actions button{flex:1 1 0}.dialog-actions .danger-button{flex-basis:100%;margin-right:0}.operator-guide{grid-template-columns:1fr;padding:14px 16px 0}.operator-guide h2{font-size:20px}.operator-guide ol{grid-template-columns:1fr}.operator-guide li{padding:10px}.admin-layout{grid-template-columns:1fr;padding:14px 16px 36px}.admin-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.admin-actions button{width:100%}.tenant-table th,.tenant-table td{white-space:nowrap;padding:8px}}@media (max-width:420px){.top-actions,.admin-actions{gap:7px}.primary-button,.secondary-button,.ghost-button,.danger-button,.highlight-button,.small-button,.primary-link,.secondary-link{padding-inline:9px}.control-band{grid-template-columns:1fr}.dialog-actions{grid-template-columns:1fr 1fr;display:grid}}@media print{:root{--print-page-height:287mm;--print-title-height:7mm;--print-header-height:5mm}.planner-table{--print-row-unit:calc((var(--print-page-height) - var(--print-title-height) - var(--print-header-height) - 3mm) / var(--print-row-weight,31));--print-font-size:clamp(6px, calc((var(--print-row-unit) - .5mm - 4px) / 1.05), 20px);--print-font-size-blank:clamp(6px, calc((var(--print-row-unit) * .5 - .5mm - 3px) / 1.05), 14px)}html,body{background:#fff;width:100%;height:auto;overflow:hidden}.topbar,.control-band,.status,.date-click-hint,.mobile-cards,.dialog-backdrop,.date-button,.event-title,.review-badge,.memo-badge,.untitled-event{display:none!important}.app-shell{min-height:auto}.print-surface{height:var(--print-page-height);max-height:var(--print-page-height);break-inside:avoid;page-break-inside:avoid;page-break-after:avoid;flex-direction:column;width:100%;min-height:0;margin:0;display:flex;position:relative;overflow:hidden;transform:none}.print-org-name{color:#333;z-index:1;font-size:10px;font-weight:600;line-height:1;display:block;position:absolute;top:0;right:0}.print-surface.print-page-break{break-after:page;page-break-after:always}.print-title{height:var(--print-title-height);min-height:var(--print-title-height);max-height:var(--print-title-height);break-after:avoid;page-break-after:avoid;flex:none;align-items:center;margin:0;display:flex;overflow:hidden}.print-title h2{margin:0;font-size:22px;line-height:1.1}.print-title p{margin:0;font-size:13px}.planner-table{height:calc(var(--print-page-height) - var(--print-title-height));max-height:calc(var(--print-page-height) - var(--print-title-height));font-size:var(--print-font-size);page-break-inside:avoid;break-inside:avoid;flex:auto;line-height:1.05;display:table}.planner-table th:first-child,.planner-table th:nth-child(2){width:5%}.planner-table th:nth-child(3){width:9%}.planner-table th:nth-child(4){width:13%}.planner-table th:nth-child(6){width:18%}.planner-table th:nth-child(7){width:16%}.planner-table th,.planner-table td{white-space:nowrap;padding:.25mm .7mm;overflow:hidden}.planner-table th{height:var(--print-header-height);font-size:clamp(7px, calc(var(--print-font-size) * 1.08), 14px)}.planner-table th,.saturday-row td,.sunday-row td,.holiday-row td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.planner-table tbody tr{break-inside:avoid;page-break-inside:avoid}.planner-table tbody tr.print-row-blank,.planner-table tbody tr.print-row-blank td{height:calc(var(--print-row-unit) * .5);max-height:calc(var(--print-row-unit) * .5);font-size:var(--print-font-size-blank)}.planner-table tbody tr.print-row-normal,.planner-table tbody tr.print-row-normal td{height:var(--print-row-unit);max-height:var(--print-row-unit)}.planner-table tbody tr.print-row-holiday,.planner-table tbody tr.print-row-holiday td{height:calc(var(--print-row-unit) * 2);max-height:calc(var(--print-row-unit) * 2)}.date-cell:before{content:attr(rowspan);display:none}.date-cell .date-button,.title-cell .event-title{white-space:nowrap;line-height:1.05;display:block!important}.holiday-line{white-space:nowrap;margin:0;display:block}.holiday-line span,.category-pill{min-height:0;font-size:inherit;border:0;padding:0 3px;line-height:1.05}@page{size:A4 portrait;margin:5mm}}
