:root{
  --bg:#eaf7ff;--bg2:#f7fcff;--card:#fff;--blue:#72bce8;--blue-dark:#2879aa;
  --blue-soft:#d9f0ff;--line:#c7e4f6;--text:#17364a;--muted:#658399;
  --green:#dff5e6;--green-text:#287541;--red:#ffe2e2;--red-text:#a43838;
  --orange:#fff0d7;--shadow:0 10px 30px rgba(42,117,160,.12)
}
*{box-sizing:border-box}body{margin:0;font-family:"Yu Gothic UI","Meiryo",sans-serif;color:var(--text);background:linear-gradient(145deg,var(--bg),var(--bg2));font-size:14px}.pastel-bg{min-height:100vh}.topbar{height:64px;padding:0 max(18px,4vw);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(8px)}.topbar>div{display:flex;gap:12px;align-items:center}.brand-badge{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#7bc6f1,#9ddcff);color:#fff;border-radius:16px;padding:9px 15px;font-weight:800;letter-spacing:.08em;box-shadow:var(--shadow)}.brand-badge.small{padding:6px 10px;border-radius:12px;font-size:12px}.text-link{color:var(--blue-dark);text-decoration:none;font-weight:700}.content-shell{width:min(1500px,96vw);margin:22px auto 60px}.cast-shell{width:min(1400px,97vw)}.hero-card,.panel,.rule-card,.login-card,.submit-bar{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.hero-card{padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.hero-card h1{margin:3px 0 7px;font-size:28px}.hero-card p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;font-weight:800;color:var(--blue-dark)!important;font-size:12px;letter-spacing:.08em}.month-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.month-nav a,.month-nav button,.soft-button{border:1px solid var(--line);background:var(--blue-soft);color:var(--blue-dark);border-radius:12px;padding:9px 12px;text-decoration:none;font-weight:700}.month-nav form{display:flex;gap:5px}.month-nav input{border:1px solid var(--line);border-radius:11px;padding:8px;background:#fff;color:var(--text)}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}table{border-collapse:separate;border-spacing:0;width:100%}.shift-table{min-width:980px}.shift-table th,.admin-table th{background:#cfeeff;color:#245a7b;font-weight:800;position:sticky;top:0;z-index:3}.shift-table th,.shift-table td,.admin-table th,.admin-table td{border-right:1px solid #d9ecf7;border-bottom:1px solid #d9ecf7;padding:8px;vertical-align:middle}.shift-table tr:last-child td{border-bottom:0}.shift-table select,.shift-table input,.inline-form input,.cast-card input{width:100%;min-height:38px;border:1px solid #bcdced;border-radius:10px;background:#fff;color:var(--text);padding:7px}.date-cell{min-width:118px;background:#f7fcff}.date-cell strong{font-size:16px}.date-cell span{color:var(--muted)}.saturday .date-cell{background:#ebf6ff}.sunday .date-cell{background:#fff5ea}.saved-chip{display:inline-block!important;margin-left:6px;padding:2px 6px;border-radius:8px;background:var(--green);color:var(--green-text)!important;font-size:10px;font-weight:800}.submit-bar{margin-top:14px;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;position:sticky;bottom:10px;z-index:5}.submit-bar div{display:flex;flex-direction:column}.submit-bar span{color:var(--muted);font-size:12px}.primary-button{border:0;background:linear-gradient(135deg,#61b3e5,#86cff5);color:#fff;padding:11px 18px;border-radius:13px;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(66,158,210,.25)}.primary-button:hover{filter:brightness(.98)}.link-button{display:inline-block;text-decoration:none}.soft-button{cursor:pointer}.flash{padding:13px 16px;border-radius:14px;margin:12px 0;font-weight:700;word-break:break-all}.flash.success{background:var(--green);color:var(--green-text);border:1px solid #bee7ca}.flash.error{background:var(--red);color:var(--red-text)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,94vw);padding:34px;text-align:center}.login-card h1{margin:18px 0 8px}.login-card p{color:var(--muted)}.stack-form{display:grid;gap:16px;text-align:left;margin-top:24px}.stack-form label{display:grid;gap:6px;font-weight:700}.stack-form input{height:46px;border:1px solid var(--line);border-radius:12px;padding:10px;font-size:18px}.small-note{font-size:12px;margin-top:18px!important}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:16px 0}.stat-grid article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:15px 18px;box-shadow:var(--shadow)}.stat-grid span{display:block;color:var(--muted);font-size:12px}.stat-grid strong{display:block;font-size:28px;margin-top:3px}.rule-card{padding:14px 18px;display:flex;gap:20px;flex-wrap:wrap}.rule-card span{color:var(--muted)}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.panel{padding:20px;margin-top:17px}.panel h2{margin:0 0 14px}.panel-heading{display:flex;justify-content:space-between;align-items:center}.panel-heading span{color:var(--muted)}.admin-table{min-width:1200px}.admin-table small{color:var(--muted)}.center{text-align:center}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900}.badge.ok{background:var(--green);color:var(--green-text)}.badge.ng{background:var(--red);color:var(--red-text)}.badge.neutral{background:#eef3f6;color:var(--muted)}.sync-state{display:inline-block;background:var(--orange);padding:4px 7px;border-radius:8px;font-size:11px}.inline-form{display:grid;grid-template-columns:1.2fr 1.2fr 1.2fr auto;gap:8px;margin:12px 0 18px}.cast-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cast-card{border:1px solid var(--line);background:#f9fdff;border-radius:14px;padding:12px;display:grid;grid-template-columns:160px 1fr auto;gap:10px;align-items:center}.cast-card small{display:block;color:var(--muted)}.mini-button{border:1px solid var(--line);background:#fff;color:var(--blue-dark);padding:8px 10px;border-radius:10px;cursor:pointer}.empty{text-align:center;color:var(--muted);padding:30px!important}.error-page{width:min(700px,90vw);margin:80px auto;background:#fff;padding:30px;border-radius:20px}.field-disabled{opacity:.42}.mode-l [data-final],.mode-l [data-course]{opacity:.45}
@media(max-width:900px){.hero-card{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:repeat(2,1fr)}.cast-list{grid-template-columns:1fr}.cast-card{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.panel-heading{align-items:flex-start;flex-direction:column;gap:4px}}
@media(max-width:620px){body{font-size:13px}.topbar{height:56px}.content-shell{margin-top:12px}.hero-card{border-radius:16px;padding:17px}.hero-card h1{font-size:23px}.month-nav{width:100%;justify-content:space-between}.month-nav form{order:3;width:100%}.month-nav input{flex:1}.table-wrap{border-radius:14px}.shift-table{min-width:0}.shift-table thead{display:none}.shift-table,.shift-table tbody,.shift-table tr,.shift-table td{display:block;width:100%}.shift-table tr{border-bottom:10px solid var(--bg);padding:10px;background:#fff}.shift-table td{border:0;padding:5px 8px;display:grid;grid-template-columns:90px 1fr;align-items:center}.shift-table td:before{font-weight:800;color:#44718d}.shift-table td:nth-child(1):before{content:"日付"}.shift-table td:nth-child(2):before{content:"状態"}.shift-table td:nth-child(3):before{content:"入り"}.shift-table td:nth-child(4):before{content:"受/上/L"}.shift-table td:nth-child(5):before{content:"最終時刻"}.shift-table td:nth-child(6):before{content:"受付枠"}.shift-table td:nth-child(7):before{content:"備考"}.date-cell{background:#eef8ff!important;border-radius:10px;padding:10px!important}.submit-bar{align-items:stretch;flex-direction:column;bottom:4px}.submit-bar button{width:100%}.stat-grid{grid-template-columns:1fr 1fr}.rule-card{flex-direction:column;gap:5px}.action-row a{width:100%;text-align:center}.admin-shell{width:97vw}.panel{padding:12px}.login-card{padding:26px 20px}}
.cast-card{grid-template-columns:160px minmax(220px,1fr) auto auto}.copy-url-button{background:var(--blue-soft);font-weight:700;white-space:nowrap}@media(max-width:900px){.cast-card{grid-template-columns:1fr}}
.locked-field{opacity:1!important}.locked-field select{background:#e7f5ff!important;color:#245a7b!important;font-weight:800}@media(max-width:620px){.shift-table td:nth-child(4):before{content:"最終時刻"}.shift-table td:nth-child(5):before{content:"受/上/L"}}

/* v0.1.5 calendar input */
.calendar-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:16px;max-width:1050px;margin:0 auto;overflow-x:auto}.calendar-weekdays,.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays{margin-bottom:7px}.calendar-weekdays span{text-align:center;color:var(--muted);font-weight:800;padding:7px}.calendar-weekdays span:nth-child(1){color:#cf7b35}.calendar-weekdays span:nth-child(7){color:#4287bd}.calendar-day{border:2px solid var(--line);border-radius:8px;background:#fbfeff;aspect-ratio:1/1;min-height:0;padding:10px;text-align:left;color:var(--text);display:flex;flex-direction:column;gap:8px;cursor:pointer;position:relative;overflow:hidden}.calendar-day:hover{border-color:#70bbe7;box-shadow:0 7px 18px rgba(42,117,160,.12)}.calendar-day.blank{border-color:transparent;background:transparent;box-shadow:none;cursor:default}.calendar-day.saturday{background:#edf7ff}.calendar-day.sunday{background:#fff3e8}.calendar-day.working{border-left:5px solid #71bbe6}.calendar-day.off{border-left:5px solid #c6d0d7;opacity:.78}.calendar-day.draft:after{content:"未保存";position:absolute;right:7px;bottom:6px;font-size:10px;color:#a66920;background:#fff0d7;border-radius:7px;padding:2px 5px}.calendar-date{display:flex;justify-content:space-between;align-items:center}.calendar-date strong{font-size:21px}.calendar-date small{color:var(--muted)}.calendar-summary{font-size:12px;font-weight:800;line-height:1.45;word-break:break-word}.calendar-day.empty .calendar-summary{color:#8aa1af;font-weight:600}.calendar-day .saved-chip{margin-left:0;margin-top:auto;align-self:flex-start}.shift-editor[hidden]{display:none}.shift-editor{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.editor-backdrop{position:absolute;inset:0;border:0;background:rgba(21,55,76,.45);cursor:pointer}.editor-sheet{position:relative;width:min(660px,96vw);max-height:92vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 24px 60px rgba(13,53,78,.3)}.editor-heading{display:flex;justify-content:space-between;align-items:flex-start}.editor-heading h2{margin:2px 0 16px}.editor-close{border:0;background:#eef8ff;color:var(--blue-dark);border-radius:50%;width:38px;height:38px;font-size:24px;cursor:pointer}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.editor-grid label{display:grid;gap:6px;font-weight:800}.editor-grid select,.editor-grid input{width:100%;min-height:44px;border:1px solid #bcdced;border-radius:11px;background:#fff;color:var(--text);padding:8px}.editor-note{grid-column:1/-1}.editor-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.editor-open{overflow:hidden}.editor-grid .field-disabled{opacity:.42}

/* approval and outputs */
.stat-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.admin-table{min-width:1700px}.badge.waiting{background:#fff0d7;color:#8b5a16}.selection-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.selection-actions input{min-width:220px;min-height:38px;border:1px solid var(--line);border-radius:10px;padding:7px}.danger-button{border:0;background:#c94f57;color:#fff;padding:10px 14px;border-radius:11px;font-weight:800;cursor:pointer}.inline-action-form{display:inline-flex}.output-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.output-links strong{margin-right:4px}.official-login-panel,.credential-panel{background:#fff;border:2px solid #91cfee;border-radius:17px;padding:15px 18px;margin:14px 0;box-shadow:var(--shadow)}.official-login-panel{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.official-login-info{display:grid;gap:4px;flex:1;min-width:280px}.official-login-info>div{display:flex;align-items:center;gap:9px}.official-login-info span,.official-login-info small{color:var(--muted)}.credential-panel h2{margin:0 0 4px}.credential-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end;margin-top:13px}.credential-form label{display:grid;gap:5px;font-weight:800}.credential-form input{min-height:42px;border:1px solid #bcdced;border-radius:10px;padding:8px}.credential-delete-form{margin-top:10px}

/* quick view and timetable */
.report-page{background:#f5fbff}.report-shell{width:min(1560px,97vw);margin:22px auto 50px}.report-title{margin-bottom:16px}.report-title h1{margin:3px 0 8px}.report-actions{display:flex;gap:12px;align-items:center}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.quick-day{break-inside:avoid;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.quick-day h2{font-size:16px;margin:0;padding:10px 14px;background:#e7f6ff}.quick-day.saturday h2{background:#e5f2ff}.quick-day.sunday h2{background:#fff0e1}.quick-day h2 small{color:var(--muted);font-weight:600}.quick-day table{font-size:12px}.quick-day th{background:#f5fbff;color:#315f7a}.quick-day th,.quick-day td{padding:7px 8px;border-bottom:1px solid #e1eef6;text-align:left}.quick-name{font-weight:900}.course-chip,.legend span{display:inline-block;padding:4px 7px;border-radius:7px;font-weight:900;white-space:nowrap}.course-90{background:#dff5e6!important;color:#287541!important}.course-120{background:#dceeff!important;color:#286895!important}.course-150,.course-l{background:#ffe1ee!important;color:#a13b68!important}.course-up{background:#fff0d7!important;color:#8b5a16!important}.legend{display:flex;gap:8px;flex-wrap:wrap}.timetable-day{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;margin:15px 0;break-inside:avoid;box-shadow:var(--shadow)}.timetable-day>h2{margin:0;padding:9px 14px;background:#e7f6ff;font-size:16px}.timetable-day.saturday>h2{background:#e5f2ff}.timetable-day.sunday>h2{background:#fff0e1}.timetable-head,.timetable-row{display:grid;grid-template-columns:140px minmax(1056px,1fr);border-top:1px solid #dcebf4}.timetable-head>span,.timetable-name{padding:6px 9px;background:#f8fcff;border-right:1px solid #dcebf4}.timetable-name{display:flex;flex-direction:column;justify-content:center;min-height:48px}.timetable-name small{color:var(--muted)}.hour-grid,.timetable-track{display:grid;grid-template-columns:repeat(44,minmax(24px,1fr));position:relative;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 44 - 1px),#dcebf4 calc(100% / 44 - 1px),#dcebf4 calc(100% / 44))}.hour-grid span{font-size:10px;color:#4c7187;text-align:left;padding:5px 0 5px 2px}.timetable-track{min-height:48px;align-items:center}.shift-bar{grid-column:var(--bar-start)/span var(--bar-span);height:34px;margin:3px 1px;border-radius:7px;padding:3px 6px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;z-index:2;border:1px solid rgba(36,90,123,.12)}.shift-bar strong,.shift-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-bar strong{font-size:11px}.shift-bar small{font-size:9px}.timetable-shell{overflow-x:auto}

@media(max-width:760px){.calendar-card{padding:8px;max-width:none}.calendar-weekdays,.month-calendar{min-width:700px;gap:6px}.calendar-weekdays span{padding:5px;font-size:12px}.calendar-day{aspect-ratio:1/1;min-height:0;border-radius:6px;padding:7px;gap:5px}.calendar-date strong{font-size:18px}.calendar-date small{font-size:10px}.calendar-summary{font-size:11px}.calendar-day .saved-chip{font-size:8px;padding:1px 4px}.editor-sheet{align-self:end;width:100%;border-radius:20px 20px 0 0;padding:20px}.shift-editor{padding:0}.editor-grid{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr}.selection-actions>*{width:100%}.selection-actions input{min-width:0}.report-topbar{position:static}.report-actions .primary-button{display:none}.credential-form{grid-template-columns:1fr}.credential-form .primary-button{width:100%}}

@page{size:A4 landscape;margin:8mm}@media print{body{background:#fff!important;font-size:10px}.topbar,.no-print{display:none!important}.report-shell{width:100%;margin:0}.report-title{margin-bottom:5mm}.quick-grid{grid-template-columns:repeat(2,1fr);gap:5mm}.quick-day{box-shadow:none;border-radius:5px}.quick-day h2{padding:5px 8px}.quick-day th,.quick-day td{padding:4px 5px}.timetable-day{box-shadow:none;border-radius:4px;margin:4mm 0;page-break-inside:avoid}.timetable-head,.timetable-row{grid-template-columns:28mm 1fr}.hour-grid,.timetable-track{grid-template-columns:repeat(44,minmax(4.3mm,1fr))}.timetable-name{min-height:8mm}.timetable-track{min-height:8mm}.shift-bar{height:6mm;padding:1px 3px}.output-links{display:none}}

/* v0.1.6 fixed baseline reports */
.baseline-report-shell{width:auto;max-width:none;margin:18px auto 40px}.baseline-sheet{background:#fff;color:#111;box-shadow:0 3px 16px rgba(0,0,0,.15);margin:18px auto;overflow:hidden;font-family:"Yu Gothic UI","Meiryo",sans-serif}.quick-print-page{width:105mm;height:148mm;padding:3.5mm}.timetable-print-page{width:297mm;height:210mm;padding:5mm}.baseline-page-header{height:10mm;display:grid;grid-template-columns:1fr 2.5fr 1fr;align-items:center;position:relative;letter-spacing:.28em}.baseline-page-header strong{text-align:center;font-size:10px;font-weight:500}.baseline-page-header em{text-align:right;font-style:normal;font-size:9px;letter-spacing:.08em}.baseline-legend{position:absolute;right:15mm;bottom:0;display:flex;gap:8mm;letter-spacing:.12em;font-size:7px}.baseline-legend span{width:8mm;border-top:1.2mm solid;padding-top:.5mm;text-align:center}.line-90{border-color:#2f985d!important}.line-120{border-color:#2d73c8!important}.line-150{border-color:#e34c9c!important}.line-l{border-color:#ef4a9a!important}.baseline-table{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:100%;font-size:7px;color:#111}.baseline-table th,.baseline-table td{border:0.25mm solid #161616;padding:0 1mm;text-align:center;overflow:hidden;white-space:nowrap}.baseline-table th{height:9mm;background:#262626;color:#fff;font-weight:500}.baseline-table tbody tr{height:6.55mm}.baseline-table .col-no{width:5.5mm}.baseline-table .col-name{width:21mm;text-align:left}.baseline-table .col-start{width:12.5mm}.baseline-table .col-slash,.baseline-table .head-slash{width:3mm;padding:0;background-image:linear-gradient(108deg,transparent 48%,#222 49%,#222 51%,transparent 52%)}.baseline-table .head-slash{background-color:#262626;background-image:linear-gradient(108deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%)}.baseline-table .col-final{width:15.5mm}.baseline-table .col-mode{width:9.5mm}.baseline-table .col-course{width:12.5mm}.baseline-table .col-note{width:auto;text-align:left}.baseline-table td.course-90{background:#dff1e4!important;color:#111!important}.baseline-table td.course-120{background:#dce9f8!important;color:#111!important}.baseline-table td.course-150{background:#f8dbe9!important;color:#111!important}.timetable-baseline-table{height:82mm}.timetable-baseline-table+.timetable-baseline-table{margin-top:2mm}.timetable-baseline-table th,.timetable-baseline-table td{height:9mm}.timetable-baseline-table .col-no{width:5mm}.timetable-baseline-table .col-name{width:20mm}.timetable-baseline-table .col-start{width:10mm}.timetable-baseline-table .col-slash,.timetable-baseline-table .head-slash{width:3mm}.timetable-baseline-table .col-final{width:12mm}.timetable-baseline-table .col-mode{width:7mm}.timetable-baseline-table .col-course{width:10mm}.timetable-baseline-table .col-note{width:17mm}.timeline-header,.timeline-cell{width:auto!important;padding:0!important;position:relative}.baseline-hours{height:100%;display:grid;grid-template-columns:repeat(60,1fr);align-items:center;background:#fff;color:#111}.baseline-hours span{text-align:left;padding-left:.7mm;font-size:7px;font-weight:500}.timeline-cell{background:linear-gradient(to right,#4c4c4c 0,#4c4c4c var(--open-start),#fff var(--open-start),#fff var(--open-end),#4c4c4c var(--open-end),#4c4c4c 100%)}.timeline-cell.all-closed{background:#4c4c4c}.timeline-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 60 - .18mm),rgba(25,25,25,.6) calc(100% / 60 - .18mm),rgba(25,25,25,.6) calc(100% / 60));pointer-events:none}.timeline-cell:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 15 - .35mm),#111 calc(100% / 15 - .35mm),#111 calc(100% / 15));pointer-events:none}.reception-line{position:absolute;z-index:2;top:-.25mm;bottom:-.25mm;width:1mm;transform:translateX(-.5mm);background:#333!important}.reception-line.course-90{background:#2f985d!important}.reception-line.course-120{background:#2d73c8!important}.reception-line.course-150{background:#e34c9c!important}.reception-line.course-l{background:#ef4a9a!important}.timetable-print-page .baseline-page-header{height:9mm}.timetable-print-page .baseline-table tbody tr{height:7.8mm}

@page quicksheet{size:A6 portrait;margin:0}@page timetablesheet{size:A4 landscape;margin:0}
@media print{.quick-report .baseline-sheet{page:quicksheet}.timetable-report .baseline-sheet{page:timetablesheet}.baseline-sheet{margin:0;box-shadow:none;break-after:page}.baseline-sheet:last-child{break-after:auto}.quick-print-page{width:105mm;height:148mm}.timetable-print-page{width:297mm;height:210mm}.baseline-report-shell{margin:0;width:auto}.report-page{background:#fff!important}}

/* v0.1.9: visible calendar date, integrated sync status, and fixed specification reports */
.calendar-date{justify-content:flex-start}.calendar-date strong{font-size:22px;line-height:1.1;letter-spacing:.01em}.calendar-date strong small{font-size:16px;color:inherit;margin-left:2px}.daily-report-panel,.official-sync-panel{background:#fff;border:2px solid #91cfee;border-radius:17px;padding:15px 18px;margin:14px 0;box-shadow:var(--shadow)}.daily-report-panel{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.daily-report-panel>div{display:grid;gap:3px;min-width:220px;flex:1}.daily-report-panel>div span,.sync-auto-note{color:var(--muted);font-size:12px}.daily-report-panel form{display:flex;gap:7px;align-items:center}.daily-report-panel input,.official-link-form select{min-height:40px;border:1px solid #bcdced;border-radius:10px;background:#fff;color:var(--text);padding:7px}.official-sync-panel{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.official-link-form{display:flex;gap:6px;align-items:center}.official-link-form select{min-width:220px}.cast-card{grid-template-columns:150px minmax(210px,1fr) auto minmax(310px,auto) auto}

.baseline-sheet,.baseline-sheet *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.quick-print-page{padding:3.5mm}.quick-page-header{height:10mm;grid-template-columns:24mm 1fr 14mm;border:.3mm solid #161616;margin-bottom:2.5mm;letter-spacing:.18em}.quick-page-header>span{align-self:stretch;background:#262626;border-right:.3mm solid #161616}.quick-page-header>strong{align-self:stretch;display:flex;align-items:center;justify-content:center;font-size:9px}.quick-page-header>em{align-self:stretch;display:flex;align-items:center;justify-content:center;background:#fff0c8;border-left:.3mm solid #161616;font-size:8px}.quick-baseline-table th{height:11mm}.quick-baseline-table tbody tr{height:7.05mm}.baseline-table th{background:#262626!important;color:#fff!important}.baseline-table .col-no{text-align:center}.baseline-table .col-name{text-align:left}.baseline-table .col-start,.baseline-table .col-final,.baseline-table .col-mode,.baseline-table .col-course{text-align:center}.timetable-page-header{grid-template-columns:1fr 2.5fr 1fr}.timetable-page-header>strong{font-size:8px}.timetable-baseline-table{width:100%!important}.timetable-baseline-table .timeline-header,.timetable-baseline-table .timeline-cell{width:auto!important}.baseline-hours{background:#fff!important;color:#111!important}

@media(max-width:900px){.cast-card{grid-template-columns:1fr}.official-link-form{align-items:stretch;flex-direction:column}.official-link-form select{width:100%;min-width:0}.daily-report-panel{align-items:stretch;flex-direction:column}.daily-report-panel form{display:grid;grid-template-columns:1fr auto}.daily-report-panel form:last-child{grid-template-columns:1fr auto}.daily-report-panel input{width:100%}}
@media(max-width:760px){.calendar-date strong{font-size:19px}.calendar-date strong small{font-size:14px}}
@media print{.baseline-sheet,.baseline-sheet *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.quick-page-header{display:grid!important}.quick-baseline-table tbody tr{height:7.05mm}.daily-report-panel,.official-sync-panel{display:none!important}}

/* v0.1.10: iPhone 16 fit, 22:00 selection limit, and pre-redesign timetable model */
body{overflow-x:hidden}.calendar-card{overflow:hidden}.calendar-day,.calendar-date,.calendar-summary{min-width:0}.editor-grid>*{min-width:0}.editor-grid select,.editor-grid input{font-size:16px}

.timetable-print-page{padding:4mm}.timetable-page-header{height:8mm;grid-template-columns:1fr 2fr 1fr;letter-spacing:.04em}.timetable-page-header>strong{font-size:10px;font-weight:800;letter-spacing:.08em}.timetable-page-header>em{font-size:7px;letter-spacing:.02em}.timetable-baseline-table{height:92mm!important}.timetable-baseline-table+.timetable-baseline-table{margin-top:2mm}.timetable-baseline-table th,.timetable-baseline-table td{padding:0 .5mm;font-size:6.5px}.timetable-baseline-table th{height:6mm!important;background:#e9f7ff!important;color:#111!important;font-weight:800}.timetable-baseline-table tbody tr{height:10.7mm!important}.timetable-baseline-table .tt-col-name{width:10mm;text-align:left;font-weight:800}.timetable-baseline-table .tt-col-time{width:18mm;text-align:center;font-size:6px}.timetable-baseline-table .tt-col-mode{width:8mm;text-align:center}.timetable-baseline-table .tt-col-note{width:8mm;text-align:left}.timetable-baseline-table .timeline-header,.timetable-baseline-table .timeline-cell{width:auto!important;padding:0!important}.timetable-baseline-table .baseline-hours{background:#e9f7ff!important}.tt-cast-row td{height:10.7mm!important}.timeline-cell{background:#fff}.timeline-cell.timeline-shift{background:linear-gradient(to right,#898989 0,#898989 var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#898989 var(--end-pct),#898989 100%)}.timeline-cell.all-closed{background:#898989!important}.timeline-grid{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 60 - .14mm),rgba(100,100,100,.34) calc(100% / 60 - .14mm),rgba(100,100,100,.34) calc(100% / 60));opacity:.72}.timeline-cell:after{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 15 - .28mm),rgba(20,20,20,.72) calc(100% / 15 - .28mm),rgba(20,20,20,.72) calc(100% / 15))}.timetable-footer-legend{height:4mm;display:flex;align-items:end;gap:8mm;font-size:6px;padding-top:1.2mm}.timetable-footer-legend strong{font-weight:500}.timetable-footer-legend span{width:10mm;border-top:1mm solid;padding-top:.3mm;text-align:center}.timetable-footer-legend .line-150{width:16mm}

@media(max-width:760px){.content-shell.cast-shell{width:100%;padding:0 5px}.cast-shell .hero-card{margin-left:0;margin-right:0}.calendar-card{width:100%;max-width:100%;padding:5px;border-radius:12px}.calendar-weekdays,.month-calendar{min-width:0!important;width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{margin-bottom:3px}.calendar-weekdays span{padding:3px 0;font-size:10px}.calendar-day{width:100%;min-width:0;aspect-ratio:1/1;padding:3px 2px;gap:2px;border-width:1.5px;border-radius:5px}.calendar-day.working,.calendar-day.off{border-left-width:3px}.calendar-date{width:100%;overflow:visible}.calendar-date strong{font-size:clamp(10.5px,3.25vw,13.5px);line-height:1.05;letter-spacing:-.06em;white-space:nowrap}.calendar-date strong small{font-size:.78em;margin-left:0}.calendar-summary{font-size:9px;line-height:1.12;max-height:2.24em;overflow:hidden;word-break:break-all}.calendar-day .saved-chip{font-size:7px;padding:1px 3px;line-height:1}.calendar-day.draft:after{display:none}.submit-bar{position:static;margin-top:8px}.editor-sheet{max-width:100%;max-height:94dvh}.editor-grid{gap:9px}.editor-grid select,.editor-grid input{min-width:0;padding:7px 4px}.topbar{padding-left:8px;padding-right:8px}.topbar>div{gap:7px}.topbar strong{font-size:15px}}

@media(max-width:390px){.calendar-card{padding:4px}.calendar-weekdays,.month-calendar{gap:2px}.calendar-day{padding:2px 1px}.calendar-date strong{font-size:10.5px}.calendar-summary{font-size:8px}.calendar-day .saved-chip{display:none}}
.baseline-hours .last-hour{text-align:right;transform:translateX(-.4mm);padding-left:0}

/* v0.1.11: readable full roster with visible distribution URL and encrypted PIN */
.cast-management-panel{padding:22px}.cast-management-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0;padding:10px 12px;background:#eef8ff;border:1px solid #cceafa;border-radius:12px}.cast-management-summary span{color:var(--muted)}.cast-list{grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:14px}.cast-card{display:block;padding:16px;background:#fff;border:2px solid #d9eef9;border-radius:16px;box-shadow:0 4px 14px rgba(68,139,179,.08)}.cast-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e3f0f7}.cast-card-head strong{display:block;font-size:21px;line-height:1.2;color:#244e67}.cast-card-head small{margin-top:5px;font-size:11px}.cast-access-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:11px}.cast-access-label{font-size:12px;font-weight:900;color:#4b7187}.cast-access-row input{min-width:0;font-size:12px}.cast-access-row.pin-row{grid-template-columns:72px minmax(90px,1fr) auto auto}.pin-display{display:flex;align-items:center;min-height:42px;padding:7px 12px;background:#fff8dc;border:1px solid #f0d57b;border-radius:10px;font-size:22px;font-weight:900;letter-spacing:.18em;color:#624c00}.pin-reset-form{display:inline-flex}.cast-link-details{margin-top:12px;padding-top:10px;border-top:1px dashed #cfe1eb}.cast-link-details summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:800}.cast-link-details .official-link-form{margin-top:9px}.copy-url-button:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:760px){.cast-management-panel{padding:13px}.cast-list{grid-template-columns:1fr}.cast-card{padding:13px}.cast-access-row,.cast-access-row.pin-row{grid-template-columns:1fr auto}.cast-access-label{grid-column:1/-1}.cast-access-row input,.pin-display{grid-column:1/2}.pin-reset-form{grid-column:1/-1}.pin-reset-form .mini-button{width:100%}.cast-card-head strong{font-size:19px}}

/* v0.1.12: Chrome/Safari shared mobile calendar and A6 calendar output */
button,a,input,select{-webkit-tap-highlight-color:transparent}.calendar-scroll{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:3px}.calendar-scroll-inner{width:100%;min-width:0}.calendar-scroll-note{display:none;margin:6px 2px 0;color:var(--muted);font-size:11px;text-align:center}.calendar-export-link{flex-basis:100%;text-align:center;background:#fff0f6!important;border-color:#f3b8cf!important;color:#a7476b!important}.calendar-output-panel{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0;padding:15px 18px;background:#fff5f9;border:2px solid #f1b9cf;border-radius:17px;box-shadow:var(--shadow)}.calendar-output-panel>div{display:grid;gap:3px;min-width:230px;flex:1}.calendar-output-panel>div span{color:var(--muted);font-size:12px}.calendar-output-panel form{display:flex;align-items:center;gap:8px}.calendar-output-panel select{min-height:42px;min-width:220px;border:1px solid #e6b7ca;border-radius:10px;background:#fff;padding:7px 10px;color:var(--text)}
.personal-calendar-tools{display:grid;grid-template-columns:minmax(230px,1fr) 92px minmax(250px,1.2fr) auto;align-items:center;gap:14px;margin:14px 0;padding:15px 18px;background:#fff5f9;border:2px solid #f1b9cf;border-radius:17px;box-shadow:var(--shadow)}.personal-calendar-copy{display:grid;gap:6px}.personal-calendar-copy>span{color:var(--muted);font-size:12px}.personal-calendar-copy .link-button{justify-self:start}.calendar-background-preview{width:82px;height:116px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid #efbfd1;border-radius:9px;background:linear-gradient(145deg,#f5aec8,#fff);color:#a8617c;font-size:10px;text-align:center}.calendar-background-preview img{width:100%;height:100%;object-fit:cover}.personal-calendar-tools form[data-background-form]{display:grid;gap:6px}.personal-calendar-tools form label{display:grid;gap:4px;font-size:12px;font-weight:800}.personal-calendar-tools input[type=file]{max-width:100%;font-size:13px}.personal-calendar-tools small{color:var(--muted);line-height:1.35}.background-remove-form{align-self:end}.background-remove-form button{white-space:nowrap}

@media(max-width:760px){
  .content-shell.cast-shell{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}
  .cast-shell .hero-card{padding:16px 12px}.cast-shell .hero-card h1{font-size:23px}.month-nav{gap:8px}.month-nav>a{min-height:42px;display:flex;align-items:center;justify-content:center}.month-nav form{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}.month-nav input{min-width:0;width:100%;font-size:16px}
  .calendar-card{overflow:visible;padding:8px 5px 7px}.calendar-scroll{border-radius:9px}.calendar-scroll-inner{width:560px;min-width:560px}.calendar-weekdays,.month-calendar{width:560px!important;min-width:560px!important;grid-template-columns:repeat(7,80px)!important;gap:4px!important}.calendar-weekdays{position:sticky;top:0;z-index:2;background:#fff;margin-bottom:4px}.calendar-weekdays span{padding:7px 0;font-size:13px}.calendar-day{width:80px!important;min-width:80px!important;height:98px!important;min-height:98px!important;aspect-ratio:auto!important;padding:7px 5px!important;gap:4px!important;border-width:2px!important;border-radius:8px!important;scroll-snap-align:center;align-content:start}.calendar-day.working,.calendar-day.off{border-left-width:4px!important}.calendar-date{overflow:visible!important}.calendar-date strong{font-size:15px!important;line-height:1.08!important;letter-spacing:-.035em!important;white-space:nowrap}.calendar-date strong small{font-size:11px!important;margin-left:1px!important}.calendar-summary{display:block!important;max-height:none!important;overflow:visible!important;font-size:11px!important;line-height:1.22!important;letter-spacing:-.025em;white-space:normal;overflow-wrap:anywhere;word-break:normal}.calendar-day .saved-chip{display:inline-flex!important;align-self:start;font-size:8px!important;padding:2px 5px!important;line-height:1.15!important}.calendar-scroll-note{display:block}.submit-bar{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .editor-sheet{max-height:94vh;max-height:94dvh;padding-bottom:max(18px,env(safe-area-inset-bottom))}.editor-actions{position:sticky;bottom:0;background:#fff;padding-top:8px}.calendar-output-panel{align-items:stretch;flex-direction:column}.calendar-output-panel form{display:grid;grid-template-columns:1fr}.calendar-output-panel select{width:100%;min-width:0;font-size:16px}.personal-calendar-tools{grid-template-columns:76px minmax(0,1fr);padding:12px;gap:10px}.personal-calendar-copy{grid-column:1/-1}.personal-calendar-copy .link-button{width:100%;justify-content:center}.calendar-background-preview{grid-column:1/2;grid-row:2;width:70px;height:99px}.personal-calendar-tools form[data-background-form]{grid-column:2/3;grid-row:2;min-width:0}.personal-calendar-tools input[type=file]{width:100%;font-size:12px}.background-remove-form{grid-column:1/-1}.background-remove-form button{width:100%}
}

@media(max-width:390px){.calendar-scroll-inner,.calendar-weekdays,.month-calendar{width:546px!important;min-width:546px!important}.calendar-weekdays,.month-calendar{grid-template-columns:repeat(7,78px)!important}.calendar-day{width:78px!important;min-width:78px!important}.topbar strong{font-size:14px}.topbar .brand-badge.small{padding-left:10px;padding-right:10px}}

/* v0.1.13: the displayed month is reconciled from approved portal shifts */


/* v0.1.18: reliable approval selection during official-sync auto refresh */
.submission-check-label{display:flex;align-items:center;justify-content:center;min-width:42px;min-height:38px;margin:-6px;cursor:pointer;border-radius:10px}.submission-check-label:hover{background:#edf8ff}.submission-checkbox{width:20px;height:20px;margin:0;cursor:pointer;accent-color:#61b3e5}.selection-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 12px}.selection-count{display:inline-flex;align-items:center;min-height:36px;padding:6px 11px;border-radius:10px;background:#eef8ff;color:#315f79;font-size:12px;font-weight:900}.admin-selection-active .selection-count{background:#fff3d8;color:#8b5a00}.sync-auto-note.is-paused{display:inline-flex;padding:6px 10px;border-radius:10px;background:#fff3d8;color:#8b5a00;font-weight:800}.selection-actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.submission-check-label{min-width:46px;min-height:42px}.submission-checkbox{width:23px;height:23px}.selection-actions{align-items:stretch}.selection-count{flex-basis:100%;justify-content:center}.selection-actions button{flex:1}}

/* v0.1.20 selected-only official sync */
.selected-sync-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:0 0 12px;border:1px solid #b9ddf3;border-radius:14px;background:#eef9ff}.selected-sync-panel>div:first-child{display:flex;flex-direction:column;gap:4px}.selected-sync-panel span{color:var(--muted);font-size:12px}.selected-sync-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:760px){.selected-sync-panel{align-items:stretch;flex-direction:column}.selected-sync-buttons>*{flex:1 1 100%}}


/* v0.1.22: report readability, ink-saving timetable shading, and stable 15-minute grid */
.quick-baseline-table{font-size:8.8px!important}
.quick-baseline-table th{font-size:8.5px!important;font-weight:700!important}
.quick-baseline-table td{font-size:8.8px!important;font-weight:600!important}
.quick-baseline-table .col-name{font-size:9.2px!important;font-weight:800!important}
.timetable-baseline-table th,.timetable-baseline-table td{font-size:8px!important}
.timetable-baseline-table .tt-col-name{font-size:8.5px!important;font-weight:900!important}
.timetable-baseline-table .tt-col-time{font-size:7.7px!important;font-weight:700!important}
.timetable-baseline-table .tt-col-mode{font-size:8.2px!important;font-weight:900!important}
.timetable-baseline-table .tt-col-note{font-size:7.6px!important}
.timetable-baseline-table .baseline-hours span{font-size:7.8px!important;font-weight:800!important}
.timeline-cell.timeline-shift{
  background:linear-gradient(to right,#e5e5e5 0,#e5e5e5 var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#e5e5e5 var(--end-pct),#e5e5e5 100%)!important;
}
.timeline-cell.all-closed{background:#e5e5e5!important}
.timeline-grid{
  z-index:1!important;
  opacity:1!important;
  background-image:linear-gradient(to right,rgba(78,78,78,.62) 0,rgba(78,78,78,.62) .22mm,transparent .22mm,transparent 100%)!important;
  background-size:calc(100% / 60) 100%!important;
  background-repeat:repeat-x!important;
  background-position:left top!important;
}
.timeline-cell:after{
  z-index:2!important;
  background-image:linear-gradient(to right,rgba(20,20,20,.78) 0,rgba(20,20,20,.78) .30mm,transparent .30mm,transparent 100%)!important;
  background-size:calc(100% / 15) 100%!important;
  background-repeat:repeat-x!important;
  background-position:left top!important;
}
.reception-line{z-index:3!important}
@media print{
  .quick-baseline-table{font-size:8.8px!important}
  .quick-baseline-table td{font-size:8.8px!important}
  .timetable-baseline-table th,.timetable-baseline-table td{font-size:8px!important}
  .timeline-cell.timeline-shift{background:linear-gradient(to right,#e5e5e5 0,#e5e5e5 var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#e5e5e5 var(--end-pct),#e5e5e5 100%)!important}
  .timeline-cell.all-closed{background:#e5e5e5!important}
}


/* v0.1.24: 150% report typography, tighter print padding, pale quick-table shading */
.quick-print-page{padding:1.4mm!important}
.timetable-print-page{padding:2mm!important}
.quick-page-header{height:8.5mm!important;margin-bottom:1.2mm!important}
.quick-page-header>strong{font-size:13.5px!important;font-weight:800!important}
.quick-page-header>em{font-size:12px!important;font-weight:700!important}
.quick-page-header>span{background:#ededed!important}
.quick-baseline-table{font-size:13.2px!important}
.quick-baseline-table th{font-size:12.75px!important;font-weight:800!important;background:#ededed!important;color:#111!important}
.quick-baseline-table td{font-size:13.2px!important;font-weight:700!important}
.quick-baseline-table .col-name{font-size:13.8px!important;font-weight:900!important}
.quick-baseline-table .head-slash{background-color:#ededed!important;background-image:linear-gradient(108deg,transparent 48%,#555 49%,#555 51%,transparent 52%)!important}
.quick-baseline-table tbody tr{height:7.05mm!important}
.timetable-page-header{height:7mm!important}
.timetable-page-header>strong{font-size:15px!important}
.timetable-page-header>em{font-size:10.5px!important}
.timetable-baseline-table th,.timetable-baseline-table td{font-size:12px!important;font-weight:750!important}
.timetable-baseline-table .tt-col-name{width:15mm!important;font-size:12.75px!important;font-weight:900!important}
.timetable-baseline-table .tt-col-time{width:23mm!important;font-size:11.55px!important;font-weight:800!important}
.timetable-baseline-table .tt-col-mode{width:10mm!important;font-size:12.3px!important;font-weight:900!important}
.timetable-baseline-table .tt-col-note{width:13mm!important;font-size:11.4px!important;font-weight:700!important}
.timetable-baseline-table .baseline-hours span{font-size:11.7px!important;font-weight:900!important;padding-left:.45mm!important}
.timetable-footer-legend{font-size:9px!important}
.timeline-cell.timeline-shift{background:linear-gradient(to right,#eeeeee 0,#eeeeee var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#eeeeee var(--end-pct),#eeeeee 100%)!important}
.timeline-cell.all-closed{background:#eeeeee!important}
@media print{
  .quick-print-page{padding:1.2mm!important}
  .timetable-print-page{padding:1.5mm!important}
  .quick-baseline-table{font-size:13.2px!important}
  .quick-baseline-table th{font-size:12.75px!important;background:#ededed!important;color:#111!important}
  .quick-baseline-table td{font-size:13.2px!important}
  .timetable-baseline-table th,.timetable-baseline-table td{font-size:12px!important}
  .timeline-cell.timeline-shift{background:linear-gradient(to right,#eeeeee 0,#eeeeee var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#eeeeee var(--end-pct),#eeeeee 100%)!important}
  .timeline-cell.all-closed{background:#eeeeee!important}
}

/* v0.1.26: timetable alignment, two-tier mode cell, lighter quarter/half-hour rules */
.timetable-baseline-table th,
.timetable-baseline-table td{
  text-align:center!important;
  vertical-align:middle!important;
}
.timetable-baseline-table .tt-col-name,
.timetable-baseline-table .tt-col-time,
.timetable-baseline-table .tt-col-mode,
.timetable-baseline-table .tt-col-note{
  text-align:center!important;
  vertical-align:middle!important;
  padding-left:.35mm!important;
  padding-right:.35mm!important;
}
.timetable-baseline-table .baseline-hours{
  position:relative!important;
  align-items:stretch!important;
}
.timetable-baseline-table .baseline-hours .hour-label{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:100%!important;
  padding:0!important;
  text-align:center!important;
  line-height:1!important;
}
.timetable-baseline-table .baseline-hours .last-hour{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:calc(100% / 60)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
}
.tt-mode-stack{
  display:grid!important;
  grid-template-rows:1fr 1fr!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  width:100%!important;
  height:100%!important;
  min-height:10.2mm!important;
}
.tt-mode-main,
.tt-mode-sub{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  text-align:center!important;
  line-height:1.05!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
.tt-mode-main{
  font-weight:900!important;
}
.tt-mode-sub{
  border-top:.10mm solid rgba(35,35,35,.35)!important;
  font-size:.78em!important;
  font-weight:800!important;
}
/* 15-minute rule = very light, 30-minute rule = light, 60-minute rule remains clear. */
.timeline-grid{
  opacity:1!important;
  background-image:
    linear-gradient(to right,rgba(55,55,55,.14) 0,rgba(55,55,55,.14) .055mm,transparent .055mm,transparent 100%),
    linear-gradient(to right,rgba(55,55,55,.23) 0,rgba(55,55,55,.23) .075mm,transparent .075mm,transparent 100%)!important;
  background-size:calc(100% / 60) 100%,calc(100% / 30) 100%!important;
  background-repeat:repeat-x,repeat-x!important;
  background-position:left top,left top!important;
}
.timeline-cell:after{
  background-image:linear-gradient(to right,rgba(20,20,20,.66) 0,rgba(20,20,20,.66) .22mm,transparent .22mm,transparent 100%)!important;
  background-size:calc(100% / 15) 100%!important;
  background-repeat:repeat-x!important;
  background-position:left top!important;
}
.timetable-page-header>em{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:1.5mm!important;
  min-width:0!important;
}
.timetable-page-header .tt-header-date{
  font-size:21px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
}
.timetable-page-header .tt-header-page{
  font-size:10.5px!important;
  font-weight:700!important;
  line-height:1!important;
  white-space:nowrap!important;
}
@media print{
  .timetable-baseline-table th,
  .timetable-baseline-table td{
    text-align:center!important;
    vertical-align:middle!important;
  }
  .timeline-grid{
    background-image:
      linear-gradient(to right,rgba(55,55,55,.14) 0,rgba(55,55,55,.14) .055mm,transparent .055mm,transparent 100%),
      linear-gradient(to right,rgba(55,55,55,.23) 0,rgba(55,55,55,.23) .075mm,transparent .075mm,transparent 100%)!important;
  }
  .timeline-cell:after{
    background-image:linear-gradient(to right,rgba(20,20,20,.66) 0,rgba(20,20,20,.66) .22mm,transparent .22mm,transparent 100%)!important;
  }
  .timetable-page-header .tt-header-date{font-size:21px!important}
  .timetable-page-header .tt-header-page{font-size:10.5px!important}
}


/* v0.1.27: quick-table center alignment, clearer start/end labels, smaller notes */
.quick-baseline-table th,
.quick-baseline-table td{
  text-align:center!important;
  vertical-align:middle!important;
}
.quick-baseline-table .col-name,
.quick-baseline-table .col-start,
.quick-baseline-table .col-final,
.quick-baseline-table .col-mode,
.quick-baseline-table .col-course,
.quick-baseline-table .col-note,
.quick-baseline-table .col-no,
.quick-baseline-table .col-slash{
  text-align:center!important;
  vertical-align:middle!important;
}
.quick-baseline-table .col-note{
  font-size:10.5px!important;
  font-weight:600!important;
  padding-left:.45mm!important;
  padding-right:.45mm!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}
@media print{
  .quick-baseline-table th,
  .quick-baseline-table td{
    text-align:center!important;
    vertical-align:middle!important;
  }
  .quick-baseline-table .col-note{
    font-size:10.5px!important;
    font-weight:600!important;
  }
}


/* v0.1.28: restore visible 15/30-minute rules, keep 24 visible, and harden report cells for longer text */
.timetable-baseline-table .timeline-header,
.timetable-baseline-table .timeline-cell{
  overflow:hidden!important;
}
/* Use a full device pixel for stability, but very pale ink so quarter/half-hour guides stay visible without becoming heavy. */
.timeline-grid{
  z-index:1!important;
  opacity:1!important;
  background-image:
    linear-gradient(to right,rgba(50,50,50,.10) 0,rgba(50,50,50,.10) 1px,transparent 1px,transparent 100%),
    linear-gradient(to right,rgba(50,50,50,.18) 0,rgba(50,50,50,.18) 1px,transparent 1px,transparent 100%)!important;
  background-size:calc(100% / 60) 100%,calc(100% / 30) 100%!important;
  background-repeat:repeat-x,repeat-x!important;
  background-position:left top,left top!important;
}
.timeline-cell:after{
  z-index:1!important;
  background-image:linear-gradient(to right,rgba(20,20,20,.52) 0,rgba(20,20,20,.52) 1px,transparent 1px,transparent 100%)!important;
  background-size:calc(100% / 15) 100%!important;
  background-repeat:repeat-x!important;
  background-position:left top!important;
}
.reception-line{z-index:3!important}
/* 24 is an endpoint label, so reserve enough space inside the right edge instead of a one-quarter-hour cell. */
.timetable-baseline-table .baseline-hours .last-hour{
  right:.15mm!important;
  width:7mm!important;
  max-width:7mm!important;
  min-width:7mm!important;
  overflow:visible!important;
  transform:none!important;
  text-align:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}
/* Timetable notes may be longer than one phrase: keep them readable in the fixed layout. */
.timetable-baseline-table .tt-col-note{
  font-size:9px!important;
  line-height:1.12!important;
  font-weight:650!important;
  white-space:normal!important;
  word-break:break-all!important;
  overflow-wrap:anywhere!important;
  text-overflow:clip!important;
  padding-left:.25mm!important;
  padding-right:.25mm!important;
}
/* Quick table: give the 上/受 heading enough room and keep both columns optically centered. */
.quick-baseline-table .col-mode{
  width:11.5mm!important;
  min-width:11.5mm!important;
  padding-left:.2mm!important;
  padding-right:.2mm!important;
  text-align:center!important;
  vertical-align:middle!important;
}
.quick-baseline-table th.col-mode{
  font-size:10.5px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.quick-baseline-table .col-course{
  width:11mm!important;
  min-width:11mm!important;
  padding-left:.2mm!important;
  padding-right:.2mm!important;
  text-align:center!important;
  vertical-align:middle!important;
}
/* Notes are intentionally smaller and may wrap to two lines instead of being truncated by ellipsis. */
.quick-baseline-table tbody .col-note{
  font-size:8.3px!important;
  line-height:1.12!important;
  font-weight:600!important;
  white-space:normal!important;
  word-break:break-all!important;
  overflow-wrap:anywhere!important;
  text-overflow:clip!important;
  padding-left:.3mm!important;
  padding-right:.3mm!important;
  text-align:center!important;
  vertical-align:middle!important;
}
@media print{
  .timeline-grid{
    background-image:
      linear-gradient(to right,rgba(50,50,50,.10) 0,rgba(50,50,50,.10) 1px,transparent 1px,transparent 100%),
      linear-gradient(to right,rgba(50,50,50,.18) 0,rgba(50,50,50,.18) 1px,transparent 1px,transparent 100%)!important;
  }
  .timeline-cell:after{
    background-image:linear-gradient(to right,rgba(20,20,20,.52) 0,rgba(20,20,20,.52) 1px,transparent 1px,transparent 100%)!important;
  }
  .timetable-baseline-table .tt-col-note{font-size:9px!important}
  .quick-baseline-table tbody .col-note{font-size:8.3px!important}
}


/* v0.1.29: left-aligned hourly scale, hide 24 endpoint label, and PC/mobile URL rows */
.timetable-baseline-table .baseline-hours .hour-label{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  height:100%!important;
  padding:0 0 0 .45mm!important;
  text-align:left!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.timetable-baseline-table .baseline-hours .last-hour{
  display:none!important;
}
.cast-access-row.mobile-url-row{
  margin-top:7px!important;
}
.cast-access-row.mobile-url-row .cast-access-label{
  line-height:1.1!important;
}
@media(max-width:760px){
  .cast-access-row{
    grid-template-columns:82px minmax(0,1fr) auto!important;
  }
  .cast-access-label{font-size:11px!important}
  .cast-access-row input{font-size:11px!important}
}

/* v0.1.30: two-level update headline / detail workflow */
.update-headline-panel{overflow:hidden}
.update-headline-summary{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.headline-count{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;background:#eef5f8;color:#45697c}
.headline-count strong{font-size:15px}.headline-count.pending{background:#fff3d8;color:#8b5a00}.headline-count.rejected{background:#ffe6e8;color:#9a3740}.headline-count.approved{background:#e3f6e9;color:#267143}
.update-headline-list{display:grid;gap:8px}
.update-headline-card{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(220px,auto);gap:14px;align-items:center;padding:13px 15px;border:1px solid #cfe5f1;border-radius:14px;background:#fbfeff;color:var(--text);text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.update-headline-card:hover{background:#f1faff;border-color:#8bcbe9;transform:translateY(-1px)}
.update-headline-status{display:flex;gap:6px;flex-wrap:wrap}.update-headline-main{display:grid;gap:3px;min-width:0}.update-headline-main strong{font-size:17px;color:#204e69}.update-headline-main span{font-weight:800}.update-headline-main small{color:var(--muted);white-space:normal}
.update-headline-meta{display:grid;gap:4px;justify-items:end;text-align:right}.update-headline-meta time{font-size:12px;color:var(--muted)}.update-official-note{font-size:11px;font-weight:800;color:#8b5a16}.update-detail-arrow{font-size:12px;font-weight:900;color:var(--blue-dark)}
.update-detail-hero{align-items:center}.update-detail-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.update-detail-summary span{display:inline-flex;gap:5px;align-items:center;padding:7px 10px;border-radius:10px;background:#eef8ff;color:#315f79;font-size:12px;font-weight:800}.update-detail-summary strong{font-size:17px}
.compact-sync-panel{margin-top:0}.update-detail-table{min-width:1350px}.update-detail-table th,.update-detail-table td{vertical-align:middle}.update-detail-table .change-before,.update-detail-table .change-after{min-width:290px;white-space:normal;line-height:1.55}.update-detail-table .change-before{background:#fafafa;color:#65747d}.update-detail-table .change-after{background:#f7fcff;font-weight:700}.judgment-text{font-size:12px;white-space:nowrap}
@media(max-width:900px){.update-headline-card{grid-template-columns:1fr}.update-headline-meta{justify-items:start;text-align:left}.update-headline-status{order:1}.update-headline-main{order:2}.update-headline-meta{order:3}.update-detail-summary{justify-content:flex-start}.update-detail-table-wrap{margin-left:-8px;margin-right:-8px;border-radius:12px}}


/* v0.1.32: use spare bottom space for taller timetable rows; keep reception legend clear of graph */
.timetable-print-page{
  position:relative!important;
}
.timetable-baseline-table{
  height:95.6mm!important;
}
.timetable-baseline-table tbody tr,
.timetable-baseline-table .tt-cast-row td{
  height:11.2mm!important;
}
.timetable-footer-legend{
  position:absolute!important;
  left:2mm!important;
  right:auto!important;
  bottom:1.5mm!important;
  height:4.5mm!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-end!important;
  gap:8mm!important;
  background:#fff!important;
  z-index:6!important;
}
@media print{
  .timetable-baseline-table{height:95.6mm!important}
  .timetable-baseline-table tbody tr,
  .timetable-baseline-table .tt-cast-row td{height:11.2mm!important}
  .timetable-footer-legend{left:1.5mm!important;bottom:1.2mm!important}
}

/* v0.2.2: cloud <-> store PC official sync bridge */
.bridge-overview-panel .panel-heading{align-items:center}
.bridge-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bridge-summary-grid>div{display:grid;gap:6px;align-content:start;padding:12px 13px;border:1px solid #d7e8f0;border-radius:13px;background:#fbfeff;min-height:88px}
.bridge-summary-grid>div>span:first-child{font-size:11px;font-weight:900;color:#6b7f89;letter-spacing:.04em}
.bridge-summary-grid>div>strong{font-size:24px;line-height:1;color:#27556e}
.bridge-summary-grid small{font-size:11px;line-height:1.45;color:#6b7f89;white-space:normal}
.selected-sync-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.bridge-job-table{min-width:1150px}
.bridge-job-table th,.bridge-job-table td{vertical-align:middle}
.bridge-message-cell{min-width:260px;white-space:normal;line-height:1.45}
@media(max-width:900px){.bridge-summary-grid{grid-template-columns:1fr 1fr}.selected-sync-buttons{justify-content:flex-start}}
@media(max-width:560px){.bridge-summary-grid{grid-template-columns:1fr}}

/* v0.2.6: cast recent-shift helper + admin notifications. Report CSS above is intentionally unchanged. */
.recent-shift-panel{display:grid;gap:8px;margin:0 0 14px;padding:12px 13px;border:1px solid #f0c8d8;border-radius:14px;background:#fff8fb}.recent-shift-panel>div:first-child{display:grid;gap:2px}.recent-shift-panel strong{font-size:14px;color:#8f3e61}.recent-shift-panel span{font-size:11px;color:var(--muted)}.recent-shift-buttons{display:flex;gap:7px;flex-wrap:wrap}.recent-shift-button{border:1px solid #edb8cc;border-radius:999px;background:#fff;color:#9b4668;padding:7px 10px;font-weight:800;font-size:12px;cursor:pointer}.recent-shift-button:hover{background:#fff0f6}.notification-overview-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#f7fbff;border:1px solid #d5eaf6;border-radius:13px}.notification-overview-status strong{color:#275d79}.notification-overview-status span{font-size:12px;color:var(--muted)}.notification-settings-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.notification-settings-form fieldset{display:grid;align-content:start;gap:9px;margin:0;padding:14px;border:1px solid #cfe5f2;border-radius:14px;background:#fbfdff}.notification-settings-form legend{padding:0 6px;font-weight:900;color:#315f79}.notification-settings-form label{display:grid;gap:5px;font-size:12px;font-weight:800}.notification-settings-form input[type=text],.notification-settings-form input[type=email],.notification-settings-form input[type=password]{width:100%;min-width:0;min-height:42px;border:1px solid #bfd9e8;border-radius:10px;background:#fff;padding:8px 10px;font-size:14px}.notification-settings-form .check-row{display:flex;grid-template-columns:none;align-items:center;gap:8px}.notification-settings-form .check-row input{width:18px;height:18px}.notification-settings-form>.action-row{grid-column:1/-1}.notification-test-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.notification-test-row form{margin:0}.notification-history-table{min-width:940px}.notification-history-table td small{display:inline-block;max-width:320px;white-space:normal;word-break:break-word;color:var(--muted)}.notification-resend{display:flex;gap:6px;flex-wrap:wrap}.notification-resend form{margin:0}
@media(max-width:900px){.notification-settings-form{grid-template-columns:1fr}.notification-settings-form>.action-row{grid-column:auto}.recent-shift-buttons{display:grid;grid-template-columns:1fr 1fr}.recent-shift-button{border-radius:11px;text-align:left}}
@media(max-width:520px){.recent-shift-buttons{grid-template-columns:1fr}.notification-test-row>*{width:100%}.notification-test-row button{width:100%}}

/* v0.2.7: writable blank timetable rows + near-edge A4 landscape fit */
.timetable-report .timeline-cell.all-closed{
  background:#fff!important;
}
.timetable-report .timetable-print-page{
  width:296mm!important;
  height:209mm!important;
  box-sizing:border-box!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
@media print{
  .timetable-report .timetable-print-page{
    width:296mm!important;
    height:209mm!important;
    box-sizing:border-box!important;
    margin:0 auto!important;
    padding:1.5mm!important;
  }
  .timetable-report .timeline-cell.all-closed{
    background:#fff!important;
  }
}

/* v0.2.8: real-printer safe A4 fit. Print-only proportional shrink; screen layout unchanged. */
@media print{
  .timetable-report .timetable-print-page{
    width:297mm!important;
    height:210mm!important;
    box-sizing:border-box!important;
    margin:0 auto!important;
    padding:1.5mm!important;
    zoom:.97!important;
  }
}


/* v0.2.9 Pilot Ready: slightly stronger gray shading; writable blank rows stay white. */
.timetable-report .timeline-cell.timeline-shift{
  background:linear-gradient(to right,#e2e2e2 0,#e2e2e2 var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#e2e2e2 var(--end-pct),#e2e2e2 100%)!important;
}
.timetable-report .timeline-cell.all-closed{background:#fff!important}
.pilot-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pilot-summary-grid>div{display:grid;gap:6px;align-content:start;padding:12px 13px;border:1px solid #d7e8f0;border-radius:13px;background:#fbfeff;min-height:88px}.pilot-summary-grid>div>span:first-child{font-size:11px;font-weight:900;color:#6b7f89;letter-spacing:.04em}.pilot-summary-grid>div>strong{font-size:24px;line-height:1;color:#27556e}.pilot-summary-grid small{font-size:11px;line-height:1.45;color:#6b7f89;white-space:normal}.pilot-backup-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.pilot-backup-row>div{display:grid;gap:4px}.pilot-backup-row span,.pilot-backup-row small{color:var(--muted)}.pilot-log-table{min-width:980px}.pilot-error-table{min-width:900px}.pilot-log-message{min-width:320px;white-space:normal;line-height:1.45}
@media(max-width:900px){.pilot-summary-grid{grid-template-columns:1fr 1fr}.pilot-backup-row{align-items:stretch;flex-direction:column}}
@media(max-width:560px){.pilot-summary-grid{grid-template-columns:1fr}}
@media print{
  .timetable-report .timeline-cell.timeline-shift{
    background:linear-gradient(to right,#e2e2e2 0,#e2e2e2 var(--start-pct),#fff var(--start-pct),#fff var(--end-pct),#e2e2e2 var(--end-pct),#e2e2e2 100%)!important;
  }
  .timetable-report .timeline-cell.all-closed{background:#fff!important}
}


/* v0.2.10 Submission History: clearer admin headline table + immutable history views. */
.submission-headline-table-wrap{border:1px solid #d8e8f0;border-radius:14px;overflow-x:auto;background:#fff}.submission-headline-table{min-width:860px;margin:0}.submission-headline-table th{background:#f3f9fc;color:#4d6f82;font-size:11px;letter-spacing:.03em;text-align:center}.submission-headline-table td{vertical-align:middle;text-align:center}.submission-headline-table .submission-cast-cell{text-align:left;min-width:150px}.submission-headline-table .submission-cast-cell strong{font-size:17px;color:#204e69}.submission-headline-table .count-cell{width:82px}.submission-headline-table .count-cell strong{font-size:22px;line-height:1}.submission-headline-table .count-cell span{font-size:11px;margin-left:2px;color:var(--muted)}.submission-headline-table .new-count strong{color:#267143}.submission-headline-table .change-count strong{color:#a66b00}.submission-headline-table .remove-count strong{color:#a13f50}.submission-headline-table .submitted-at-cell{min-width:145px;white-space:nowrap}.submission-headline-table .submission-state-cell{min-width:135px}.submission-headline-table .detail-cell{width:80px}.superseded-note{display:block;margin-top:5px;color:#9a6b24;font-size:10px;font-weight:800}.history-superseded-row td{background:#fafafa;color:#697b85}.history-superseded-row .change-after{background:#fafafa!important}.history-readonly{color:#9aa7ad}.history-readonly-banner{margin:0 0 14px;padding:12px 14px;border:1px solid #e8d8b9;border-radius:12px;background:#fff9ed;color:#75551c;font-size:12px;font-weight:800;line-height:1.6}.date-history-link{display:inline-block;margin-top:5px;font-size:11px;font-weight:800;color:#2776a2;text-decoration:none}.date-history-link:hover{text-decoration:underline}.date-history-table{min-width:1080px}.date-history-table .change-before,.date-history-table .change-after{min-width:300px;white-space:normal;line-height:1.55}.date-history-table .change-before{background:#fafafa;color:#65747d}.date-history-table .change-after{background:#f7fcff;font-weight:700}@media(max-width:760px){.submission-headline-table{min-width:760px}.submission-headline-table .submission-cast-cell strong{font-size:15px}.submission-headline-table .count-cell strong{font-size:19px}}


/* v0.2.11: four finalized reports + persistent store notes. */
.report-control-panel .report-button-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.report-control-panel .report-button-grid>a{text-align:center}.cast-report-form{display:flex;gap:7px;grid-column:span 2}.cast-report-form select{min-width:180px;flex:1;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 10px}.cast-report-form button{white-space:nowrap}.store-note-table{min-width:1050px}.store-note-table th:nth-child(1){width:175px}.store-note-table th:nth-child(2){width:110px}.store-note-table th:nth-child(3){width:190px}.store-note-table th:nth-child(4){width:260px}.store-note-table textarea{width:100%;min-width:250px;resize:vertical;border:1px solid #bfd9e8;border-radius:9px;padding:8px 9px;font:inherit;line-height:1.5}.store-note-cast-note{white-space:normal;line-height:1.5}.store-note-save-bottom{display:flex;justify-content:flex-end;margin-top:14px}

/* A6 quick sheet: all operational fields remain separate. */
.v211-quick-sheet{width:105mm;height:148mm;padding:1.5mm}.v211-quick-header{height:9mm;display:grid;grid-template-columns:1fr 11mm;align-items:center;border:.3mm solid #111;background:#ededed;margin-bottom:1mm}.v211-quick-header strong{font-size:12px;font-weight:900;text-align:center}.v211-quick-header span{font-size:9px;font-weight:800;text-align:center}.v211-quick-table{border-collapse:collapse;table-layout:fixed;width:102mm;color:#111}.v211-quick-table th,.v211-quick-table td{border:.25mm solid #111;text-align:center;padding:.25mm .35mm;height:7.55mm;line-height:1.1;overflow:hidden}.v211-quick-table th{height:9mm;background:#e9e9e9;color:#111;font-size:8.4px;font-weight:900;white-space:normal}.v211-quick-table td{font-size:10.4px;font-weight:750;white-space:nowrap}.v211-quick-table .q-no{width:5mm}.v211-quick-table .q-name{width:16mm;font-weight:900}.v211-quick-table td.q-name{text-align:left;font-size:11px}.v211-quick-table .q-start{width:12mm}.v211-quick-table .q-end{width:12mm}.v211-quick-table .q-mode{width:8mm}.v211-quick-table .q-course{width:11mm}.v211-quick-table .q-cast-note{width:18mm}.v211-quick-table .q-store-note{width:20mm}.v211-quick-table td.q-cast-note,.v211-quick-table td.q-store-note{font-size:8.1px;text-align:left;white-space:normal;word-break:break-all}.v211-quick-table td.course-90{background:#e2f3e8!important;color:#2c7b4b!important}.v211-quick-table td.course-120{background:#e4edf9!important;color:#275f9b!important}.v211-quick-table td.course-150,.v211-quick-table td.course-l{background:#f9e3ed!important;color:#a7336b!important}

/* A4 timetable: 87mm information block + remaining width for 09:00-24:00. */
.v211-timetable-sheet{width:297mm;height:210mm;padding:3mm}.v211-timetable-header{height:12mm;display:flex;align-items:flex-start;justify-content:space-between}.v211-timetable-header>strong{font-size:18px;font-weight:900;line-height:1}.v211-timetable-header>div{display:flex;align-items:flex-start;gap:4mm}.ttv-date{font-size:12px;font-weight:900;white-space:nowrap}.ttv-page{font-size:9px;font-weight:800;min-width:9mm;text-align:right}.ttv-legend{display:flex;gap:1.4mm}.ttv-legend span{min-width:8mm;padding:1mm .8mm;border-radius:1.5mm;text-align:center;font-size:8px;font-weight:900}.v211-timetable-table{width:291mm;border-collapse:collapse;table-layout:fixed;color:#111}.v211-timetable-table th,.v211-timetable-table td{border:.28mm solid #111;padding:0;overflow:hidden}.v211-timetable-table th{height:11.2mm;background:#e9e9e9;color:#111;font-size:10px;font-weight:900;white-space:normal}.v211-timetable-table tbody tr,.v211-timetable-table td{height:10.75mm}.v211-timetable-table .ttv-name{width:16.5mm}.v211-timetable-table td.ttv-name{text-align:left;padding-left:1mm;font-size:10.3px;font-weight:900}.v211-timetable-table .ttv-time{width:18.5mm}.v211-timetable-table .ttv-mode{width:13mm}.v211-timetable-table .ttv-cast-note{width:16mm}.v211-timetable-table .ttv-store-note{width:18mm}.v211-timetable-table td.ttv-cast-note,.v211-timetable-table td.ttv-store-note{font-size:8px;line-height:1.15;text-align:left;padding:.5mm;white-space:normal;word-break:break-all}.v211-timetable-table th small{font-size:7px;font-weight:800}.ttv-time>div,.ttv-mode>div{height:100%;display:grid;grid-template-rows:1fr 1fr}.ttv-time span,.ttv-mode span{display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:900}.ttv-time span+span,.ttv-mode span+span{border-top:.18mm solid #555}.ttv-mode.course-90 span:last-child{background:#e2f3e8;color:#2c7b4b}.ttv-mode.course-120 span:last-child{background:#e4edf9;color:#275f9b}.ttv-mode.course-150 span:last-child{background:#f9e3ed;color:#a7336b}.ttv-mode.course-l span:first-child{background:#f8e0ee;color:#b52f76}.ttv-timeline-head,.ttv-timeline{width:auto;position:relative;padding:0!important}.tt-axis{position:absolute;inset:0 0 0 0;background:#e9e9e9}.tt-axis-label{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:9.5px;font-weight:900;line-height:1}.tt-axis-label.axis-first{transform:translate(0,-50%)}.tt-axis-label.axis-last{transform:translate(-100%,-50%)}.ttv-timeline{background:#fff}.ttv-timeline.working{background:linear-gradient(to right,#e2e2e2 0,#e2e2e2 var(--start),#fff var(--start),#fff var(--end),#e2e2e2 var(--end),#e2e2e2 100%)}.ttv-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 60 - .12mm),rgba(70,70,70,.36) calc(100% / 60 - .12mm),rgba(70,70,70,.36) calc(100% / 60)),repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 15 - .22mm),rgba(20,20,20,.72) calc(100% / 15 - .22mm),rgba(20,20,20,.72) calc(100% / 15));pointer-events:none}.ttv-marker{position:absolute;top:-.25mm;bottom:-.25mm;width:.85mm;transform:translateX(-.425mm);z-index:4;background:#333!important}.ttv-marker.course-90{background:#2c9c5a!important}.ttv-marker.course-120{background:#2d73be!important}.ttv-marker.course-150{background:#d9468d!important}.ttv-marker.course-l{background:#de3f97!important}

/* A4 monthly shift: 10 casts horizontally, front/back half-month pages. */
.v211-monthly-shift-sheet{width:297mm;height:210mm;padding:3mm}.v211-monthly-shift-sheet>header{height:11mm;display:flex;align-items:center;gap:13mm}.v211-monthly-shift-sheet>header strong{font-size:15px;font-weight:900}.v211-monthly-shift-sheet>header span,.v211-monthly-shift-sheet>header em{font-size:13px;font-weight:900;font-style:normal}.v211-monthly-shift-sheet table{width:291mm;border-collapse:collapse;table-layout:fixed;color:#111}.v211-monthly-shift-sheet th,.v211-monthly-shift-sheet td{border:.28mm solid #222;padding:0}.v211-monthly-shift-sheet thead th{height:9mm;background:#f1f1f1;font-size:10px;font-weight:900}.v211-monthly-shift-sheet .ms-date-head,.v211-monthly-shift-sheet .ms-date{width:13mm}.v211-monthly-shift-sheet .ms-date{font-size:8.2px;font-weight:750;text-align:center;background:#fff}.v211-monthly-shift-sheet .ms-date.sat{color:#3478e5}.v211-monthly-shift-sheet .ms-date.sun{color:#ff2a2a}.v211-monthly-shift-sheet tbody tr{height:10.8mm}.monthly-cast-cell{position:relative}.monthly-shift-half{position:absolute;left:0;top:0;bottom:0;width:14.5mm;border-right:.25mm solid #222;background:#fff;overflow:hidden}.monthly-shift-half:after{content:"";position:absolute;inset:0;background:linear-gradient(to top right,transparent 49.2%,#333 49.6%,#333 50.4%,transparent 50.8%);pointer-events:none}.monthly-shift-half.sat{background:#a8e8ea}.monthly-shift-half.sun{background:#f18bc1}.monthly-shift-half span{position:absolute;font-weight:900;white-space:nowrap}.ms-start{left:.8mm;top:.75mm;font-size:8.6px}.ms-end{right:.7mm;bottom:2.8mm;font-size:7.9px}.ms-mode{right:.7mm;bottom:.45mm;font-size:7.8px}.monthly-note-half{position:absolute;left:14.5mm;right:0;top:0;bottom:0;display:grid;grid-template-rows:1fr 1fr}.monthly-note-half>div{display:flex;align-items:center;justify-content:center;overflow:hidden;padding:.25mm;font-size:6.8px;font-weight:800;line-height:1.05;white-space:normal;word-break:break-all}.monthly-note-half>div+div{border-top:.18mm solid #888}.v211-monthly-shift-sheet footer{height:5mm;display:flex;align-items:end;font-size:7px;font-weight:800}

/* A4 portrait cast monthly attendance sheet. */
.v211-cast-month-sheet{width:210mm;height:297mm;padding:5mm}.v211-cast-month-sheet>header{height:17mm;display:flex;justify-content:space-between;align-items:flex-start}.v211-cast-month-sheet>header>div{display:grid;gap:1.5mm}.v211-cast-month-sheet>header>div:last-child{text-align:right}.v211-cast-month-sheet>header strong{font-size:14px;font-weight:900}.v211-cast-month-sheet>header span{font-size:10px;font-weight:800}.v211-cast-month-sheet table{width:200mm;border-collapse:collapse;table-layout:fixed;color:#111}.v211-cast-month-sheet th,.v211-cast-month-sheet td{border:.26mm solid #222;text-align:center;padding:.25mm .5mm;height:7.55mm;overflow:hidden}.v211-cast-month-sheet th{height:9mm;background:#e9e9e9;font-size:9px;font-weight:900}.v211-cast-month-sheet td{font-size:9.3px;font-weight:700}.v211-cast-month-sheet th:nth-child(1){width:13mm}.v211-cast-month-sheet th:nth-child(2){width:10mm}.v211-cast-month-sheet th:nth-child(3),.v211-cast-month-sheet th:nth-child(4){width:18mm}.v211-cast-month-sheet th:nth-child(5){width:15mm}.v211-cast-month-sheet th:nth-child(6){width:16mm}.v211-cast-month-sheet th:nth-child(7){width:48mm}.v211-cast-month-sheet th:nth-child(8){width:62mm}.v211-cast-month-sheet .cm-note{text-align:left;font-size:8.1px;white-space:normal;word-break:break-all}.v211-cast-month-sheet tr.sat td:first-child,.v211-cast-month-sheet tr.sat td:nth-child(2){background:#eaf3ff;color:#2d73be}.v211-cast-month-sheet tr.sun td:first-child,.v211-cast-month-sheet tr.sun td:nth-child(2){background:#fff0e6;color:#d06b2d}.v211-cast-month-sheet footer{height:6mm;display:flex;align-items:end;font-size:7px;font-weight:800}

@page v211quick{size:A6 portrait;margin:0}@page v211timetable{size:A4 landscape;margin:0}@page v211monthly{size:A4 landscape;margin:0}@page v211castmonthly{size:A4 portrait;margin:0}
@media print{.v211-quick-report .baseline-sheet{page:v211quick}.v211-timetable-report .baseline-sheet{page:v211timetable}.v211-monthly-shift-report .baseline-sheet{page:v211monthly}.v211-cast-month-report .baseline-sheet{page:v211castmonthly}.v211-quick-sheet,.v211-timetable-sheet,.v211-monthly-shift-sheet,.v211-cast-month-sheet{margin:0!important;box-shadow:none!important;break-after:page}.baseline-sheet:last-child{break-after:auto}.v211-timetable-sheet,.v211-monthly-shift-sheet{zoom:.97}.store-note-panel{display:none}}
@media(max-width:900px){.report-control-panel .report-button-grid{grid-template-columns:1fr}.cast-report-form{grid-column:auto;display:grid}.store-note-save-bottom .primary-button{width:100%}}


/* v0.2.12 - exact report-layout correction from approved Python samples */
.v212-quick-sheet{width:105mm;height:148mm;padding:3mm 3mm 2mm;overflow:hidden}
.v212-quick-title{height:13mm;display:grid;grid-template-columns:22mm 1fr 8mm;align-items:center;background:#fff;color:#111;border:0;margin:0 0 2mm}
.v212-quick-title strong{font-size:15pt;font-weight:900;text-align:left;line-height:1}
.v212-quick-title span{font-size:13pt;font-weight:900;text-align:center;white-space:nowrap}
.v212-quick-title em{font-size:7pt;font-style:normal;font-weight:800;text-align:right}
.v212-quick-table{width:99mm;border-collapse:collapse;table-layout:fixed}
.v212-quick-table th,.v212-quick-table td{border:.24mm solid #111;padding:0 .35mm;height:6.75mm;line-height:1.05}
.v212-quick-table th{height:9.1mm;background:#262626!important;color:#fff!important;font-size:7.2pt;font-weight:900}
.v212-quick-table td{font-size:8.7pt;font-weight:800}
.v212-quick-table .q-no{width:5.2mm}.v212-quick-table .q-name{width:18mm}.v212-quick-table .q-start{width:12.5mm}.v212-quick-table .q-end{width:12.5mm}.v212-quick-table .q-mode{width:9.5mm}.v212-quick-table .q-course{width:10.5mm}.v212-quick-table .q-cast-note{width:15mm}.v212-quick-table .q-store-note{width:15.8mm}
.v212-quick-table td.q-name{text-align:center;font-size:9.4pt;font-weight:900}.v212-quick-table td.q-cast-note,.v212-quick-table td.q-store-note{font-size:6.5pt;text-align:center;white-space:normal;word-break:break-all}
.v212-quick-table td.course-90{background:#e2f3e8!important;color:#2c9c5a!important}.v212-quick-table td.course-120{background:#e4edf9!important;color:#2d73be!important}.v212-quick-table td.course-150,.v212-quick-table td.course-l{background:#f9e3ed!important;color:#d9468d!important}
.v212-quick-footer{height:5mm;display:flex;align-items:end;font-size:5.6pt;font-weight:800;color:#111}

.v212-timetable-sheet{width:297mm;height:210mm;padding:3mm;overflow:hidden}
.v212-timetable-header{height:12.2mm;display:flex;align-items:flex-start;justify-content:space-between}
.v212-timetable-header>strong{font-size:15pt;font-weight:900;line-height:1}
.v212-timetable-header>div{display:grid;grid-template-columns:auto auto 7mm;grid-template-rows:auto auto;column-gap:4mm;row-gap:.8mm;align-items:start;justify-items:end}
.v212-timetable-header .ttv-date{grid-column:1/3;grid-row:1;font-size:10.5pt;font-weight:900;line-height:1}
.v212-ttv-legend{grid-column:1/3;grid-row:2;display:flex;gap:7mm;align-items:start}
.v212-ttv-legend span{width:8mm;min-width:8mm;padding:.5mm 0 0;border-radius:0!important;border-top:1.05mm solid;font-size:6.5pt;font-weight:900;text-align:center;background:transparent!important;color:#111!important}
.v212-timetable-header .ttv-page{grid-column:3;grid-row:1/3;font-size:7pt}
.v212-timetable-table{width:291mm;border-collapse:collapse;table-layout:fixed;color:#111}
.v212-timetable-table th,.v212-timetable-table td{border:.25mm solid #111;padding:0;overflow:hidden}
.v212-timetable-table th{height:11.2mm;background:#e9e9e9!important;color:#111!important;font-size:7.2pt;font-weight:900;white-space:normal}
.v212-timetable-table tbody tr,.v212-timetable-table td{height:10.75mm}
.v212-timetable-table .ttv-no{width:5mm;text-align:center;font-size:7.2pt;font-weight:900}
.v212-timetable-table .ttv-name{width:16.5mm}.v212-timetable-table td.ttv-name{text-align:center;padding:0 .5mm;font-size:8.2pt;font-weight:900}
.v212-timetable-table .ttv-time{width:18.5mm}.v212-timetable-table .ttv-mode{width:13mm}.v212-timetable-table .ttv-cast-note{width:16mm}.v212-timetable-table .ttv-store-note{width:18mm}
.v212-timetable-table th small{font-size:5.4pt;font-weight:800}.v212-timetable-table .ttv-time span,.v212-timetable-table .ttv-mode span{font-size:7.4pt;font-weight:900}
.v212-timetable-table td.ttv-cast-note,.v212-timetable-table td.ttv-store-note{font-size:6.2pt;line-height:1.08;text-align:center;padding:.35mm;white-space:normal;word-break:break-all}
.v212-timetable-table .tt-axis-label{font-size:7.2pt;font-weight:900}

/* Monthly shift: keep the approved 10-cast / half-month geometry and restore sample typography. */
.v211-monthly-shift-sheet{padding:3mm;overflow:hidden}.v211-monthly-shift-sheet>header{height:11.5mm;gap:13mm}.v211-monthly-shift-sheet>header strong{font-size:10pt}.v211-monthly-shift-sheet>header span,.v211-monthly-shift-sheet>header em{font-size:9.2pt}.v211-monthly-shift-sheet thead th{height:9.5mm;font-size:7pt}.v211-monthly-shift-sheet .ms-date{font-size:5.7pt}.v211-monthly-shift-sheet tbody tr{height:10.9mm}.ms-start{left:.8mm;top:.75mm;font-size:5.55pt}.ms-end{right:.7mm;bottom:2.75mm;font-size:5.05pt}.ms-mode{right:.7mm;bottom:.4mm;font-size:5.05pt}.monthly-note-half>div{font-size:4.95pt;line-height:1}.v211-monthly-shift-sheet footer{font-size:5.2pt}

/* Cast monthly: follow the approved A4 portrait Python sample. */
.v211-cast-month-sheet{width:210mm;height:297mm;padding:5mm;overflow:hidden}.v211-cast-month-sheet>header{height:17mm}.v211-cast-month-sheet>header strong{font-size:10.5pt}.v211-cast-month-sheet>header span{font-size:7.5pt}.v211-cast-month-sheet table{width:200mm}.v211-cast-month-sheet th,.v211-cast-month-sheet td{height:7.55mm}.v211-cast-month-sheet th{height:9mm;font-size:6.8pt}.v211-cast-month-sheet td{font-size:7pt}.v211-cast-month-sheet .cm-note{font-size:6pt}

@media print{
  .v211-timetable-sheet,.v211-monthly-shift-sheet{zoom:1!important;transform:none!important}
  .v212-quick-sheet,.v212-timetable-sheet,.v211-monthly-shift-sheet,.v211-cast-month-sheet{margin:0!important;box-shadow:none!important}
}


/* v0.2.13 - monthly cell geometry, print-stable timetable grid, approval-first store note flow */
.approval-review-table{min-width:1480px}.approval-review-table th:nth-child(6){min-width:230px}.approval-store-note-cell{min-width:230px}.approval-store-note-input{display:block;width:100%;min-width:210px;min-height:58px;resize:vertical;border:1px solid #aacfe3;border-radius:10px;background:#fff;padding:8px 10px;color:var(--text);font:inherit;line-height:1.35}.approval-store-note-input:focus{outline:3px solid rgba(97,179,229,.18);border-color:#61b3e5}.approval-store-note-help{display:block;margin-top:4px;color:var(--muted);font-size:11px}.approval-flow-actions{align-items:center;gap:10px;flex-wrap:wrap}.approval-flow-guide{display:flex;flex-direction:column;gap:2px;flex:1 1 520px;padding:10px 12px;border-radius:12px;background:#edf8ff;border:1px solid #c9e8f8}.approval-flow-guide strong{color:#245a7b}.approval-flow-guide span{font-size:12px;color:var(--muted)}

/* Monthly shift: reproduce the approved Python sample coordinates. */
.v211-monthly-shift-sheet{padding:2mm 3mm 2mm!important}.v211-monthly-shift-sheet>header{height:10.5mm!important}.v211-monthly-shift-sheet tbody tr{height:11.15mm!important}
.monthly-shift-half{--ms-bg:#fff;background:var(--ms-bg)!important;overflow:hidden}.monthly-shift-half.sat{--ms-bg:#a8e8ea}.monthly-shift-half.sun{--ms-bg:#f18bc1}
.monthly-shift-half:after{z-index:1!important;background:linear-gradient(to top right,transparent 49.35%,#2a2a2a 49.7%,#2a2a2a 50.3%,transparent 50.65%)!important}
.monthly-shift-half .ms-start,.monthly-shift-half .ms-end,.monthly-shift-half .ms-mode{z-index:3!important;display:block!important;background:var(--ms-bg)!important;padding:0 .18mm!important;line-height:1!important;border-radius:.2mm!important;right:auto!important;bottom:auto!important}
.monthly-shift-half .ms-start{left:30%!important;top:27%!important;transform:translate(-50%,-50%)!important;font-size:5.55pt!important}
.monthly-shift-half .ms-end{left:70%!important;top:67%!important;transform:translate(-50%,-50%)!important;font-size:5.05pt!important}
.monthly-shift-half .ms-mode{left:72%!important;top:84%!important;transform:translate(-50%,-50%)!important;font-size:5.05pt!important}
.monthly-note-half>div{font-size:4.95pt!important}.v211-monthly-shift-sheet footer{height:3mm!important;font-size:5.1pt!important}

/* Timetable: compress metadata to 75mm and give the time axis the remaining 216mm. */
.v212-timetable-table .ttv-no{width:4mm!important}.v212-timetable-table .ttv-name{width:14.5mm!important}.v212-timetable-table .ttv-time{width:16.5mm!important}.v212-timetable-table .ttv-mode{width:11.5mm!important}.v212-timetable-table .ttv-cast-note{width:13mm!important}.v212-timetable-table .ttv-store-note{width:15.5mm!important}
.v212-timetable-table td.ttv-name{font-size:7.8pt!important;padding:0 .3mm!important}.v212-timetable-table .ttv-time span,.v212-timetable-table .ttv-mode span{font-size:7.1pt!important}.v212-timetable-table td.ttv-cast-note,.v212-timetable-table td.ttv-store-note{font-size:5.9pt!important;padding:.25mm!important}
.ttv-timeline-head,.ttv-timeline{position:relative!important;overflow:hidden!important}.tt-axis{position:absolute!important;inset:0!important;background:#e9e9e9!important;overflow:visible!important}.ttv-grid-lines{position:absolute;inset:0;z-index:2;pointer-events:none}.ttv-grid-lines i{position:absolute;top:0;bottom:0;width:0;border-left-style:solid;transform:translateX(-50%)}.ttv-grid-lines i.quarter{border-left-width:.12mm;border-left-color:#b7b7b7}.ttv-grid-lines i.half{border-left-width:.18mm;border-left-color:#888}.ttv-grid-lines i.hour{border-left-width:.28mm;border-left-color:#222}.ttv-timeline.working{background:linear-gradient(to right,#e2e2e2 0,#e2e2e2 var(--start),#fff var(--start),#fff var(--end),#e2e2e2 var(--end),#e2e2e2 100%)!important}.ttv-timeline.blank{background:#fff!important}.tt-axis-label{z-index:4!important;background:#e9e9e9;padding:0 .25mm}.ttv-marker{z-index:5!important}
.v212-timetable-table th,.v212-timetable-table td{border:.30mm solid #111!important}.v212-timetable-table tbody tr{border-bottom:.30mm solid #111!important}

@media(max-width:900px){.approval-flow-actions{align-items:stretch}.approval-flow-guide{flex-basis:100%}.approval-store-note-input{min-width:180px}}
@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.ttv-grid-lines i.quarter{border-left-width:.13mm!important;border-left-color:#aaa!important}.ttv-grid-lines i.half{border-left-width:.19mm!important;border-left-color:#777!important}.ttv-grid-lines i.hour{border-left-width:.30mm!important;border-left-color:#111!important}}

/* v0.2.14 - direct update from v0.2.12: monthly diagonal/text separation + exact timetable hour marks */
/* Monthly shift: original Excel diagonal is bottom-left -> top-right. Keep all text away from the diagonal. */
.monthly-shift-half{width:15.8mm!important;--ms-bg:#fff;background:var(--ms-bg)!important;overflow:hidden!important}
.monthly-shift-half.sat{--ms-bg:#a8e8ea!important}.monthly-shift-half.sun{--ms-bg:#f18bc1!important}
.monthly-note-half{left:15.8mm!important}
.monthly-shift-half:after{
  content:""!important;position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none!important;
  background:linear-gradient(to bottom right,transparent 49.25%,#222 49.65%,#222 50.35%,transparent 50.75%)!important
}
.monthly-shift-half .ms-start,.monthly-shift-half .ms-end,.monthly-shift-half .ms-mode{
  z-index:3!important;display:block!important;position:absolute!important;background:transparent!important;
  padding:0!important;border-radius:0!important;line-height:1!important;white-space:nowrap!important;
  transform:translate(-50%,-50%)!important;font-weight:900!important
}
.monthly-shift-half .ms-start{left:23%!important;top:19%!important;font-size:6.35pt!important}
.monthly-shift-half .ms-end{left:76%!important;top:63%!important;font-size:6.10pt!important}
.monthly-shift-half .ms-mode{left:78%!important;top:84%!important;font-size:5.85pt!important}
.monthly-note-half>div{font-size:5.25pt!important;line-height:1.02!important;padding:.18mm!important}

/* Timetable: hour number and its vertical hour line are one positioning object. */
.tt-axis-minor-lines{z-index:1!important}
.tt-hour-mark{position:absolute!important;top:0!important;bottom:0!important;width:0!important;z-index:3!important;border-left:.30mm solid #111!important}
.tt-hour-mark b{position:absolute!important;left:0!important;top:50%!important;transform:translate(-50%,-50%)!important;font-size:7.2pt!important;font-weight:900!important;line-height:1!important;background:#e9e9e9!important;padding:0 .22mm!important;white-space:nowrap!important}
.tt-hour-mark.axis-first b{transform:translate(0,-50%)!important}
.tt-hour-mark.axis-last b{transform:translate(-100%,-50%)!important}
@media print{
  .tt-hour-mark{border-left-width:.31mm!important;border-left-color:#111!important}
  .tt-hour-mark b{font-size:7.2pt!important}
}


/* v0.2.15 - timetable print vector grid
   Replace browser/CSS border grid with a single SVG vector layer so the PDF/print pipeline
   does not quantize dozens of thin borders independently. */
.ttv-grid-lines,.tt-axis-minor-lines{display:none!important}
.ttv-grid-svg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:2!important;
  pointer-events:none!important;
  overflow:visible!important;
  shape-rendering:geometricPrecision!important;
}
.ttv-grid-svg line{fill:none!important;vector-effect:non-scaling-stroke!important}
.ttv-grid-svg line.quarter{stroke:#777!important;stroke-width:1.25px!important}
.ttv-grid-svg line.half{stroke:#555!important;stroke-width:1.55px!important}
.ttv-grid-svg line.hour{stroke:#111!important;stroke-width:2px!important}
.v212-timetable-table th,.v212-timetable-table td{border:.35mm solid #111!important}
.v212-timetable-table tbody tr{border-bottom:.35mm solid #111!important}
.ttv-timeline.working{background:linear-gradient(to right,#ececec 0,#ececec var(--start),#fff var(--start),#fff var(--end),#ececec var(--end),#ececec 100%)!important}
.tt-axis{background:#eeeeee!important}
.tt-hour-mark{z-index:5!important;background:#eeeeee!important;padding:0 .35mm!important}

@media print{
  @page{size:A4 landscape;margin:0!important}
  html,body{width:297mm!important;height:auto!important;margin:0!important;padding:0!important}
  .v212-timetable-sheet{width:297mm!important;height:210mm!important;padding:3mm!important;zoom:1!important;transform:none!important;box-sizing:border-box!important}
  .v212-timetable-table{width:291mm!important;table-layout:fixed!important;border-collapse:collapse!important}
  .ttv-grid-svg{shape-rendering:geometricPrecision!important}
  .ttv-grid-svg line.quarter{stroke:#666!important;stroke-width:1.35px!important}
  .ttv-grid-svg line.half{stroke:#444!important;stroke-width:1.7px!important}
  .ttv-grid-svg line.hour{stroke:#000!important;stroke-width:2.2px!important}
  .v212-timetable-table th,.v212-timetable-table td{border:.38mm solid #000!important}
  .v212-timetable-table tbody tr{border-bottom:.38mm solid #000!important}
}

/* v0.2.17 - print timetable as one full-page SVG.
   Screen keeps the HTML table. Print/PDF uses one unified coordinate system so
   vertical and horizontal rules cannot break at individual table-cell boundaries. */
.ttv-print-layer{display:none}
.ttv-print-svg{display:block;width:297mm;height:210mm}
@media print{
  .v211-timetable-report .ttv-screen-layer{display:none!important}
  .v211-timetable-report .ttv-print-layer{display:block!important;width:297mm!important;height:210mm!important;margin:0!important;padding:0!important}
  .v211-timetable-report .v212-timetable-sheet{width:297mm!important;height:210mm!important;padding:0!important;margin:0!important;overflow:hidden!important;box-sizing:border-box!important}
  .v211-timetable-report .ttv-print-svg{display:block!important;width:297mm!important;height:210mm!important}
}


/* v0.2.18 safe cast lifecycle + timetable middle ruler */
.v212-timetable-table td.ttv-name,.v211-timetable-table td.ttv-name{text-align:center!important;padding-left:0!important;padding-right:0!important}
.v212-timetable-table .ttv-mid-axis-row,.v211-timetable-table .ttv-mid-axis-row{height:5.4mm!important}
.v212-timetable-table .ttv-mid-axis-row td,.v211-timetable-table .ttv-mid-axis-row td{height:5.4mm!important;background:#fff!important;border-top:.32mm solid #111!important;border-bottom:.32mm solid #111!important}
.v212-timetable-table .ttv-mid-axis-row td:first-child,.v211-timetable-table .ttv-mid-axis-row td:first-child{border-right:.32mm solid #111!important}
.ttv-mid-axis{background:#fff!important;overflow:hidden!important}
.ttv-mid-axis .ttv-grid-svg{z-index:1!important}
.ttv-mid-axis .tt-hour-mark{z-index:4!important;background:#fff!important;padding:0 .28mm!important}
.cast-catalog-panel{border:2px solid #9dd8f4}.catalog-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0;color:var(--muted)}
.catalog-candidate-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.catalog-candidate{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid #cfe7f4;background:#f8fdff;border-radius:13px;padding:11px}.catalog-candidate>div{min-width:0}.catalog-candidate strong,.catalog-candidate small{display:block}.catalog-candidate small{color:var(--muted);margin-top:3px}.cast-card.inactive{opacity:.78;background:#f4f5f6;border-color:#d7dce0}.cast-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cast-card-title strong{font-size:19px}.cast-card-title small{margin-top:4px}.cast-state-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.cast-url-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:7px;align-items:center;margin-top:10px}.cast-pin{display:flex;align-items:center;gap:10px;margin-top:8px}.cast-pin strong{font-size:20px;letter-spacing:.12em}.cast-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.cast-card-actions form{margin:0}.cast-card-actions .official-link-form{display:flex;gap:5px;min-width:250px}.cast-card-actions .official-link-form input{min-width:120px}.danger-lite{color:#9d2d2d!important;border-color:#efc5c5!important;background:#fff5f5!important}.manual-cast-add{margin-top:18px;border-top:1px dashed #cfe1eb;padding-top:12px}.manual-cast-add summary{cursor:pointer;font-weight:800;color:var(--muted)}
@media(max-width:760px){.catalog-candidate{align-items:flex-start;flex-direction:column}.cast-url-row{grid-template-columns:1fr auto}.cast-url-row>span{grid-column:1/-1}.cast-card-actions{align-items:stretch;flex-direction:column}.cast-card-actions form,.cast-card-actions button,.cast-card-actions .official-link-form{width:100%;min-width:0}.cast-card-actions .official-link-form{flex-direction:column}}
@media print{
  .v211-timetable-report .ttv-print-svg{shape-rendering:geometricPrecision!important}
  .v211-timetable-report .ttv-print-svg line{stroke-linecap:butt!important;stroke-linejoin:miter!important}
}


/* v0.2.19 store-note cast + month filter */
.store-note-search-panel{margin-bottom:14px}.store-note-filter-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.store-note-filter-form label{display:flex;flex-direction:column;gap:6px;min-width:220px}.store-note-filter-form label span{font-size:12px;font-weight:800;color:#597080}.store-note-filter-form select,.store-note-filter-form input[type=month]{height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px;font:inherit}.store-note-filter-form button{height:42px;min-width:92px}.store-note-month-links{display:flex;gap:16px;margin-top:12px;font-size:13px}.store-note-month-links a{color:#35748d;text-decoration:none;font-weight:700}.store-note-empty-guide{display:flex;flex-direction:column;gap:5px;padding:24px;border:1px dashed #bfd9e8;border-radius:12px;background:#f8fcfe;color:#526a77}.store-note-empty-guide strong{font-size:16px;color:#263c48}.store-note-filtered-table{min-width:900px}.store-note-filtered-table th:nth-child(1){width:190px}.store-note-filtered-table th:nth-child(2){width:220px}.store-note-filtered-table th:nth-child(3){width:260px}.store-note-filtered-table th:nth-child(4){width:auto}.store-note-filtered-table textarea{min-width:320px}.store-note-hero{margin-bottom:14px}@media(max-width:700px){.store-note-filter-form{display:grid;grid-template-columns:1fr}.store-note-filter-form label{min-width:0}.store-note-filter-form button{width:100%}}

/* v0.2.20 top-page store-note shortcut + 上のみ24:00 */
.store-note-top-panel{border:2px solid #a9dcef;background:linear-gradient(180deg,#fbfeff,#f5fbfe)}
.store-note-top-form{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(180px,.8fr) auto;gap:12px;align-items:end;margin-top:12px}
.store-note-top-form label{display:flex;flex-direction:column;gap:6px}
.store-note-top-form label span{font-size:12px;font-weight:800;color:#597080}
.store-note-top-form select,.store-note-top-form input[type=month]{height:44px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px;font:inherit;min-width:0}
.store-note-top-form button{height:44px;white-space:nowrap}
@media(max-width:760px){.store-note-top-form{grid-template-columns:1fr}.store-note-top-form button{width:100%}}


/* v0.2.21 admin PIN-bypass route + visible bulk select + timetable A4 safety fit */
.admin-cast-mode-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 13px;border:1px solid #91cfe8;border-radius:12px;background:#eef9fd;color:#315e73}.admin-cast-mode-banner strong{white-space:nowrap;color:#155c7d}.admin-cast-mode-banner span{font-size:12px;line-height:1.45}.cast-open-portal-form{margin:0}.cast-open-portal-button{white-space:nowrap;border-color:#84c7e3!important;background:#effaff!important;color:#176486!important}.cast-url-row{grid-template-columns:58px minmax(0,1fr) auto auto}.approval-select-head{min-width:82px}.approval-select-all{display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;white-space:nowrap;font-size:11px;font-weight:900}.approval-select-all input{width:17px;height:17px;margin:0;accent-color:#3294c6}.submission-checkbox{width:18px;height:18px;accent-color:#3294c6}
/* Screen preview: keep hour rules strong while making 30/15-minute rules more subdued. */
.ttv-grid-svg line.quarter{stroke:#c5c5c5!important;stroke-width:.9px!important}.ttv-grid-svg line.half{stroke:#999!important;stroke-width:1.2px!important}.ttv-grid-svg line.hour{stroke:#111!important;stroke-width:2px!important}
@media(max-width:760px){.cast-url-row{grid-template-columns:1fr auto}.cast-url-row>span{grid-column:1/-1}.cast-open-portal-form{grid-column:1/-1}.cast-open-portal-button{width:100%}.admin-cast-mode-banner{align-items:flex-start;flex-direction:column}}
@media print{
  /* A small safety margin prevents browser/printer rounding from spilling beyond A4. */
  .v211-timetable-report .ttv-print-layer.ttv-print-fit-v221{display:flex!important;align-items:center!important;justify-content:center!important;width:297mm!important;height:210mm!important;overflow:hidden!important}
  .v211-timetable-report .ttv-print-layer.ttv-print-fit-v221 .ttv-print-svg{width:290mm!important;height:205mm!important;max-width:290mm!important;max-height:205mm!important}
  .ttv-grid-svg line.quarter{stroke:#c5c5c5!important;stroke-width:.9px!important}.ttv-grid-svg line.half{stroke:#999!important;stroke-width:1.2px!important}.ttv-grid-svg line.hour{stroke:#111!important;stroke-width:2.1px!important}
}

/* v0.2.22 quick A6 + timetable note PDF wrap */
@media screen{body.v211-quick-report .baseline-report-shell{max-width:126mm;margin-left:auto;margin-right:auto}}


/* v0.2.23 - screen-first attendance criteria report */
.criteria-shell{max-width:1180px}.criteria-hero{align-items:center}.criteria-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.criteria-nav form{display:flex;gap:7px;align-items:center}.criteria-nav input[type=date]{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.criteria-nav a{font-weight:800;text-decoration:none}.criteria-rule-note{margin:14px 0;background:#fff;border:1px solid #cfe3ef;border-radius:14px;padding:14px 16px;display:grid;gap:6px;box-shadow:var(--shadow)}.criteria-rule-note strong{font-size:15px}.criteria-rule-note span{font-size:12px;line-height:1.65;color:#506775}.criteria-table{min-width:760px}.criteria-table th:nth-child(1){width:19%}.criteria-table th:nth-child(2){width:31%}.criteria-table th:nth-child(3),.criteria-table th:nth-child(4){width:25%}.criteria-table th,.criteria-table td{text-align:center;vertical-align:middle}.criteria-cast strong{font-size:16px}.criteria-shift{font-size:15px;font-weight:800;white-space:nowrap}.criteria-result{padding:10px 8px!important}.criteria-result .criteria-mark{display:block;font-size:31px;line-height:1;font-weight:950}.criteria-result .criteria-mark.ok{color:#18864b}.criteria-result .criteria-mark.ng{color:#d13b4c}.criteria-result small{display:block;margin-top:6px;font-size:10.5px;line-height:1.4;color:#617784;white-space:normal}.attendance-criteria-link{background:#f2a8bf!important;color:#fff!important}@media(max-width:760px){.criteria-nav{width:100%}.criteria-nav form{flex:1}.criteria-nav input[type=date]{min-width:0;width:100%}.criteria-rule-note{padding:12px}.criteria-table{min-width:680px}}

/* v0.2.24 - timetable minor adjustment only: slightly darker off-hours gray. */
.v211-timetable-report .ttv-timeline.working{background:linear-gradient(to right,#e5e5e5 0,#e5e5e5 var(--start),#fff var(--start),#fff var(--end),#e5e5e5 var(--end),#e5e5e5 100%)!important}

/* v0.2.26 - external advance reservations. Existing quick/timetable geometry is unchanged. */
.advance-reservation-name{color:#5b0aa8!important;font-weight:950!important}
.advance-reservation-form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;align-items:end}.advance-reservation-form label{display:flex;flex-direction:column;gap:6px;font-weight:800}.advance-reservation-form label span{font-size:12px;color:#685d68}.advance-reservation-form input,.advance-reservation-form select,.advance-reservation-form textarea{width:100%;box-sizing:border-box}.advance-reservation-form .advance-reservation-note-field{grid-column:1/-1}.advance-reservation-submit{grid-column:1/-1;display:flex;justify-content:flex-end}.advance-reservation-actions{display:flex;gap:6px;align-items:center}.advance-reservation-actions form{margin:0}.advance-reservation-table td.advance-reservation-note{min-width:220px;white-space:normal}.advance-reservation-cancelled{opacity:.56}
.advance-reservation-print-sheet{width:105mm;height:148mm;padding:3mm 3mm 2mm;overflow:hidden;color:#111;background:#fff}.advance-reservation-print-title{height:13mm;display:grid;grid-template-columns:28mm 1fr 8mm;align-items:center;margin:0 0 2mm;border-bottom:.35mm solid #111}.advance-reservation-print-title strong{font-size:13pt;font-weight:900}.advance-reservation-print-title span{font-size:9pt;font-weight:900;text-align:center;white-space:nowrap}.advance-reservation-print-title em{font-size:7pt;font-style:normal;font-weight:800;text-align:right}.advance-reservation-print-list{width:99mm}.advance-reservation-print-row{min-height:22.5mm;max-height:22.5mm;border-bottom:.25mm solid #555;padding:1.3mm .8mm;box-sizing:border-box;overflow:hidden}.advance-reservation-print-main{display:grid;grid-template-columns:1fr 20mm 18mm;gap:1mm;align-items:center;font-size:9pt}.advance-reservation-print-main strong{font-size:10pt;color:#5b0aa8;font-weight:900}.advance-reservation-print-main span{text-align:right;font-weight:900}.advance-reservation-print-member{margin-top:1mm;font-size:8pt}.advance-reservation-print-note{margin-top:.7mm;font-size:7.2pt;line-height:1.18;white-space:normal;word-break:break-all}.advance-reservation-print-sheet footer{height:5mm;display:flex;align-items:end;font-size:5.6pt;font-weight:800}
@media print{body.v211-quick-report .advance-reservation-print-sheet{width:105mm!important;height:148mm!important;margin:0!important;padding:3mm 3mm 2mm!important;box-shadow:none!important;overflow:hidden!important;break-after:page!important;page-break-after:always!important}body.v211-quick-report .advance-reservation-print-sheet:last-child{break-after:auto!important;page-break-after:auto!important}}
@media(max-width:900px){.advance-reservation-form{grid-template-columns:1fr 1fr}.advance-reservation-form .advance-reservation-note-field,.advance-reservation-submit{grid-column:1/-1}}



/* v0.2.27 - reservation operations + official-HP miss prevention. Report geometry unchanged. */
.advance-reservation-top-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#5b0aa8,#7c3aed);color:#fff;box-shadow:0 9px 24px rgba(91,10,168,.22)}.advance-reservation-top-cta>div{display:grid;gap:4px}.advance-reservation-top-cta strong{font-size:19px;font-weight:950}.advance-reservation-top-cta span{font-size:12px;line-height:1.5;opacity:.94}.advance-reservation-top-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:10px 16px;background:#fff;color:#53108f!important;font-weight:950;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.14);cursor:pointer;white-space:nowrap}.advance-reservation-top-button:hover{filter:brightness(.97)}
.advance-reservation-bulk-form{display:grid;gap:8px}.advance-reservation-bulk-head,.advance-reservation-bulk-row{display:grid;grid-template-columns:38px minmax(120px,1.05fr) minmax(135px,1fr) 105px 100px minmax(125px,.9fr) minmax(180px,1.45fr);gap:8px;align-items:end}.advance-reservation-bulk-head{padding:0 8px;color:#6f6571;font-size:11px;font-weight:900}.advance-reservation-bulk-row{padding:10px 8px;border:1px solid #e4d9ea;border-radius:12px;background:#fdfaff}.advance-reservation-bulk-row label{display:flex;flex-direction:column;gap:4px}.advance-reservation-bulk-row label span{display:none;font-size:11px;font-weight:800;color:#6f6571}.advance-reservation-bulk-row input,.advance-reservation-bulk-row select{width:100%;box-sizing:border-box}.advance-reservation-row-no{align-self:center;text-align:center;color:#5b0aa8}.advance-reservation-bulk-submit{display:flex;justify-content:flex-end;margin-top:4px}.advance-reservation-bulk-submit .advance-reservation-top-button{background:#5b0aa8;color:#fff!important}.advance-reservation-bulk-note input{min-width:0}
.official-unreflected-alert{border:2px solid #ee8b42!important;background:#fff8ee!important;box-shadow:0 7px 22px rgba(196,87,20,.12)!important}.official-unreflected-alert h2{color:#a53d0b}.official-unreflected-count{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:7px 10px;border-radius:999px;background:#c7490d;color:#fff;font-size:16px}.official-unreflected-table tbody tr{background:#fffaf4}.official-unreflected-table td{vertical-align:middle}.official-unreflected-message{display:block;margin-top:4px;max-width:360px;color:#895d45;font-size:10.5px;white-space:normal}.official-unreflected-row>td{background:#fff0d9!important;border-top-color:#efb06d!important;border-bottom-color:#efb06d!important}.official-unreflected-row>td:first-child{box-shadow:inset 5px 0 0 #d65b16}.official-unreflected-inline{display:block;margin-top:5px;color:#b8420b;font-size:10px;font-weight:950;white-space:nowrap}
@media(max-width:1000px){.advance-reservation-bulk-head{display:none}.advance-reservation-bulk-row{grid-template-columns:38px 1fr 1fr}.advance-reservation-bulk-row label span{display:block}.advance-reservation-bulk-note{grid-column:2/-1}}
@media(max-width:680px){.advance-reservation-top-cta{align-items:stretch;flex-direction:column}.advance-reservation-top-button{width:100%;box-sizing:border-box}.advance-reservation-bulk-row{grid-template-columns:32px 1fr}.advance-reservation-bulk-note{grid-column:2}.official-unreflected-table{min-width:720px}}


/* v0.2.29 - next-shift A6 report + prominent daily-report launcher. */
.v0229-daily-report-panel{display:block!important;padding:22px 24px!important;border:3px solid #58b8eb!important;background:linear-gradient(135deg,#f4fbff,#e8f7ff)!important;box-shadow:0 10px 26px rgba(52,137,184,.15)!important}
.v0229-daily-report-panel .daily-report-heading{display:flex!important;align-items:baseline!important;gap:14px!important;min-width:0!important;margin-bottom:15px!important}
.v0229-daily-report-panel .daily-report-heading strong{font-size:18px!important;color:#164d6d!important}
.v0229-daily-report-panel .daily-report-heading span{font-size:12px!important;color:#56788c!important}
.v0229-daily-report-panel .daily-report-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}
.v0229-daily-report-panel .daily-report-form{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important;background:#fff!important;border:1px solid #b8dff2!important;border-radius:14px!important;padding:11px!important}
.v0229-daily-report-panel .daily-report-form input{width:100%!important;min-height:42px!important}
.v0229-daily-report-panel .daily-report-form button{width:100%!important;min-height:44px!important;font-weight:900!important}
.v0229-daily-report-panel .next-shift-report-form{border:2px solid #7d5ac7!important;box-shadow:0 5px 14px rgba(93,63,160,.12)!important}
.v0229-daily-report-panel .next-shift-report-button{background:#7650bd!important;border-color:#7650bd!important;color:#fff!important}

/* v0.2.30: 次回出勤日一覧をA4縦・全面罫線・縦幅やや大きめで出力 */
.v230-next-shift-report-shell{max-width:210mm;margin-left:auto;margin-right:auto}
.v230-next-shift-sheet{width:210mm;height:297mm;padding:10mm 10mm 8mm;background:#fff;color:#111;overflow:hidden;box-sizing:border-box}
.v230-next-shift-title{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 3mm}.v230-next-shift-title strong{display:block;font-size:18pt;font-weight:900;line-height:1.1}.v230-next-shift-title span{display:block;margin-top:1.2mm;font-size:9.5pt;font-weight:800}.v230-next-shift-title em{font-size:8.2pt;font-style:normal;font-weight:800}
.v230-next-shift-alert{margin:0 0 3.5mm;color:#c40000;font-size:9.5pt;font-weight:900}
.v230-next-shift-table{width:100%;border-collapse:collapse;table-layout:fixed}.v230-next-shift-table th,.v230-next-shift-table td{border:.25mm solid #111;padding:1.2mm 1.3mm;height:11.2mm;line-height:1.18;vertical-align:middle;box-sizing:border-box;background:#fff}.v230-next-shift-table th{font-size:8.9pt;font-weight:900;text-align:center;background:#e9eef7!important;color:#111!important}.v230-next-shift-table td{font-size:9pt;font-weight:700;text-align:center}
.v230-next-shift-table .ns-name{width:14%}.v230-next-shift-table .ns-date{width:16%}.v230-next-shift-table .ns-start{width:8%}.v230-next-shift-table .ns-end{width:8%}.v230-next-shift-table .ns-mode{width:7%}.v230-next-shift-table .ns-reception{width:10%}.v230-next-shift-table .ns-cast-note{width:18%}.v230-next-shift-table .ns-store-note{width:19%}
.v230-next-shift-table td.ns-name{font-size:9.8pt;font-weight:900}.v230-next-shift-table td.ns-cast-note,.v230-next-shift-table td.ns-store-note{text-align:left;font-size:8.2pt;word-break:break-all;overflow-wrap:anywhere}
.v230-next-shift-footer{margin-top:2.5mm;font-size:7.4pt;font-weight:800;color:#111}
@media print{body.v230-next-shift-report .v230-next-shift-sheet{width:210mm!important;height:297mm!important;margin:0!important;padding:10mm 10mm 8mm!important;box-shadow:none!important;break-after:page!important;page-break-after:always!important}body.v230-next-shift-report .v230-next-shift-sheet:last-child{break-after:auto!important;page-break-after:auto!important}}


/* v0.2.31 daily actual attendance */
.attendance-top-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:18px 20px;border:3px solid #dc5c76;border-radius:18px;background:#fff}.attendance-top-cta strong{display:block;font-size:20px}.attendance-top-cta span{display:block;margin-top:4px;color:#765f65}.attendance-top-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:12px;background:#c83d5a;color:#fff!important;font-weight:900;text-decoration:none;white-space:nowrap}
.attendance-rule-note{display:grid;gap:6px;margin:16px 0;padding:14px 16px;border:2px solid #e5a1ae;border-radius:14px;background:#fff}.attendance-rule-note strong{color:#a72742;font-size:16px}.attendance-rule-note span{font-weight:700;line-height:1.55}
.attendance-actual-table{min-width:1320px}.attendance-actual-table th,.attendance-actual-table td{vertical-align:middle}.attendance-actual-table select,.attendance-actual-table input[type=time],.attendance-actual-table textarea{width:100%;min-width:88px;box-sizing:border-box}.attendance-actual-table .attendance-plan{min-width:230px;font-weight:700}.attendance-actual-table .attendance-cast{min-width:100px}.attendance-actual-table textarea{min-width:180px}.attendance-point-result{margin-top:5px}.attendance-save-bottom{display:flex;justify-content:flex-end;margin-top:14px}.attendance-late-block{font-weight:900;color:#c40000;background:#fff0f2!important}.attendance-api-key{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:10px;align-items:center}.attendance-api-key input{width:100%}.attendance-api-endpoints{display:grid;gap:7px;margin-top:12px}.attendance-api-endpoints code{padding:8px 10px;border:1px solid #ddd;border-radius:8px;background:#fafafa;overflow-wrap:anywhere}
@media(max-width:760px){.attendance-top-cta{align-items:stretch;flex-direction:column}.attendance-top-button{width:100%}.attendance-api-key{grid-template-columns:1fr}.attendance-actual-hero{display:block}}


/* v0.2.33: attendance exception UI, larger controls/cells, intuitive criterion colors */
.v0233-attendance-table{min-width:1280px!important;table-layout:fixed}
.v0233-attendance-table th{font-size:14px!important;padding:12px 10px!important}
.v0233-attendance-table td{height:76px!important;min-height:76px!important;padding:10px!important;vertical-align:middle!important;background:#fff;transition:background-color .15s ease}
.v0233-attendance-table th:nth-child(1){width:130px}.v0233-attendance-table th:nth-child(2){width:255px}.v0233-attendance-table th:nth-child(3){width:155px}.v0233-attendance-table th:nth-child(4){width:145px}.v0233-attendance-table th:nth-child(5){width:145px}.v0233-attendance-table th:nth-child(6){width:285px}.v0233-attendance-table th:nth-child(7){width:210px}
.v0233-attendance-table select,.v0233-attendance-table input[type=time],.v0233-attendance-table input[type=text],.v0233-attendance-table textarea{font-size:16px!important;min-height:46px!important;border-radius:10px!important;padding:8px 10px!important;border:1px solid #aebbc5!important;background:#fff!important;color:#17232b!important;box-sizing:border-box}
.v0233-attendance-table select{font-weight:800}.v0233-attendance-table textarea{min-height:54px!important;resize:vertical}.v0233-attendance-table input:disabled,.v0233-attendance-table select:disabled{background:#edf1f4!important;color:#73808a!important;cursor:not-allowed;opacity:1}
.v0233-attendance-table .attendance-cast strong{font-size:18px}.v0233-attendance-table .attendance-plan{font-size:14px;line-height:1.55}.attendance-time-cell small{display:block;margin-top:5px;font-size:11px;color:#64737e}
.attendance-judgment-cell{font-size:14px;line-height:1.55}.attendance-criterion-mark{font-size:19px;font-weight:950}.attendance-criterion-mark.is-ok{color:#127da5}.attendance-criterion-mark.is-ng{color:#555}.attendance-valid-result{display:inline-block;margin-top:4px;font-size:15px}.attendance-live-warning{margin-top:5px;font-size:12px;font-weight:900;color:#c02020}.attendance-month-penalty-text{margin-top:7px;padding-top:6px;border-top:1px dashed #e3a7a7;color:#c00000;font-size:12px;font-weight:800}.attendance-month-penalty-text strong{color:#c00000}.attendance-month-penalty-text[hidden]{display:none!important}
.v0233-attendance-table tr.attendance-row-valid>td{background:#eaf8ff!important}.v0233-attendance-table tr.attendance-row-late>td{background:#fff8d7!important}.v0233-attendance-table tr.attendance-row-month-penalty>td{background:#ffe8e8!important;color:#b00000}.v0233-attendance-table tr.attendance-row-month-penalty .attendance-plan,.v0233-attendance-table tr.attendance-row-month-penalty small{color:#a33!important}
.attendance-save-button{font-size:16px!important;min-height:46px!important;padding-left:22px!important;padding-right:22px!important}.attendance-summary-table{min-width:1050px}.attendance-summary-penalty>td{background:#ffe8e8!important}.attendance-summary-penalty-text{color:#c00000;font-weight:950}.attendance-rule-note{font-size:14px!important;line-height:1.6!important}.attendance-rule-note strong{font-size:16px}
@media(max-width:760px){.v0233-attendance-table td{height:70px!important}.attendance-save-button{width:100%}}

/* v0.2.34: attendance table readability + input containment */
.attendance-actual-shell{width:min(1820px,98.5vw)!important;max-width:none!important}
.attendance-actual-panel{padding:24px!important}
.attendance-actual-panel .table-wrap{overflow-x:auto!important;overflow-y:visible!important}
.v0233-attendance-table{min-width:1660px!important;width:1660px!important;table-layout:fixed!important}
.v0233-attendance-table th{font-size:16px!important;padding:15px 12px!important;line-height:1.35!important}
.v0233-attendance-table td{height:94px!important;min-height:94px!important;padding:13px 12px!important;font-size:16px!important;line-height:1.45!important;vertical-align:middle!important;overflow:hidden!important}
.v0233-attendance-table th:nth-child(1){width:150px!important}
.v0233-attendance-table th:nth-child(2){width:310px!important}
.v0233-attendance-table th:nth-child(3){width:180px!important}
.v0233-attendance-table th:nth-child(4){width:185px!important}
.v0233-attendance-table th:nth-child(5){width:185px!important}
.v0233-attendance-table th:nth-child(6){width:380px!important}
.v0233-attendance-table th:nth-child(7){width:270px!important}
.v0233-attendance-table select,.v0233-attendance-table input[type=time],.v0233-attendance-table input[type=text],.v0233-attendance-table textarea{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;font-size:17px!important;min-height:52px!important;padding:10px 12px!important;border-radius:11px!important;line-height:1.3!important}
.v0233-attendance-table input[type=time]{appearance:auto!important;-webkit-appearance:auto!important}
.v0233-attendance-table .attendance-exception-select{font-size:17px!important;font-weight:900!important}
.v0233-attendance-table .attendance-time-cell{overflow:hidden!important}
.v0233-attendance-table .attendance-time-cell small{font-size:12.5px!important;line-height:1.4!important;margin-top:7px!important;white-space:normal!important}
.v0233-attendance-table .attendance-cast strong{font-size:20px!important;line-height:1.25!important}
.v0233-attendance-table .attendance-source-badge{margin-top:5px!important}
.v0233-attendance-table .attendance-plan{font-size:16px!important;line-height:1.6!important;font-weight:800!important;white-space:normal!important}
.v0233-attendance-table .attendance-judgment-cell{font-size:16px!important;line-height:1.65!important;overflow:visible!important}
.v0233-attendance-table .attendance-criterion-mark{font-size:22px!important}
.v0233-attendance-table .attendance-valid-result{font-size:17px!important;margin-top:5px!important}
.v0233-attendance-table .attendance-live-warning{font-size:13px!important;line-height:1.45!important;margin-top:6px!important}
.v0233-attendance-table .attendance-month-penalty-text{font-size:13px!important;line-height:1.5!important}
.v0233-attendance-table .attendance-note-cell textarea{min-height:64px!important;font-size:16px!important;line-height:1.45!important}
.attendance-actual-panel .panel-heading h2{font-size:22px!important}
.attendance-actual-panel .panel-heading span{font-size:14px!important}
.attendance-save-button{font-size:17px!important;min-height:50px!important}
@media(max-width:900px){.attendance-actual-shell{width:99vw!important}.attendance-actual-panel{padding:14px!important}.v0233-attendance-table{min-width:1660px!important;width:1660px!important}.v0233-attendance-table td{height:90px!important;min-height:90px!important}}

