:root{color-scheme:light;--navy:#102f46;--teal:#08796d;--muted:#60717e;--line:#dce4ea;--surface:#fff;--bg:#f1f5f8;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--navy);font-family:var(--font);font-size:16px;line-height:1.5}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #0f9e91;outline-offset:3px}button:disabled{opacity:.35;cursor:default}.site-header{max-width:1120px;padding:25px 28px 22px;margin:auto;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px}.brand-icon{background:var(--navy);color:#7ce4d1;border-radius:12px;display:grid;place-items:center;width:47px;height:47px;font-size:32px;line-height:1}.brand-place{font-size:12px;font-weight:750;letter-spacing:.14em;color:var(--teal)}h1{font-size:21px;line-height:1.3;margin:0;font-weight:760}h2,p{margin:0}main{max-width:1120px;margin:auto;padding:0 28px 30px}.outline-button,.icon-button{background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:9px;min-height:44px;padding:8px 16px;font-weight:650}.icon-button{font-size:25px;padding:0;width:44px}.group-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:#dfe8ee;border-radius:12px;padding:5px;margin-bottom:22px;max-width:540px}.group-button{border:0;background:transparent;min-height:44px;border-radius:8px;color:#49606f;font-size:15px;font-weight:700}.group-button[aria-pressed=true]{background:var(--navy);color:white;box-shadow:0 2px 5px #12314820}.work-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.calendar-panel,.summary-panel,.day-panel,.below-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px}.calendar-panel{overflow:hidden}.calendar-toolbar{padding:25px 24px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.eyebrow{font-size:13px;color:var(--muted);font-weight:650;letter-spacing:.04em}.calendar-toolbar h2{font-size:29px;letter-spacing:-.035em;margin:2px 0}.period-range{font-size:14px;color:var(--muted)}.month-nav{display:flex;gap:7px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 14px 15px}.weekday{text-align:center;color:var(--muted);font-size:13px;padding:7px 0 12px}.weekday.sun{color:#b14749}.weekday.sat{color:#286eae}.day-cell{border:0;border-top:1px solid #edf0f3;background:white;min-height:88px;padding:8px 1px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--navy);position:relative;border-radius:0}.day-cell:hover{background:#f4f8fa}.day-cell.selected{background:#eaf5f3;border-radius:9px;box-shadow:inset 0 0 0 2px var(--teal)}.day-cell.empty{background:transparent}.day-number{font-size:15px;font-weight:620;min-height:24px;line-height:24px;padding:0 5px}.is-today .day-number{background:var(--navy);color:white;border-radius:20px;min-width:25px}.day-cell.sun .day-number,.day-cell.holiday .day-number{color:#b14749}.day-cell.sat .day-number{color:#286eae}.day-cell.is-today .day-number{color:white}.shift{display:inline-block;padding:3px 7px;border-radius:5px;font-size:13px;font-weight:650;white-space:nowrap;line-height:1.4}.first{background:#fff0cc;color:#815413}.second{background:#e6eafa;color:#384b92}.dawn{background:#eef1f4;color:#596978}.rest{background:#f0f3f5;color:#5c6c78}.legal{background:#e8f5f0;color:#237257}.special{background:#08796d;color:#fff}.daywork{background:#e1f1fd;color:#236386}.holiday-work{background:#fce8eb;color:#9c3a56}.legend{padding:0 22px 21px;display:flex;gap:7px;flex-wrap:wrap}.summary-panel{padding:23px;background:var(--navy);color:white;border-color:var(--navy)}.summary-panel .eyebrow{color:#a7c3d0}.summary-panel h2{font-size:18px;margin:5px 0 20px}.hours-large{font-size:38px;font-weight:720;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.1}.hours-large span{font-size:15px;font-weight:400;letter-spacing:0;margin-left:6px;color:#c1d3dd}.stat-label{font-size:13px;color:#adc6d1;margin-top:6px}.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid #ffffff29;margin-top:22px;padding-top:20px}.stat-number{font-size:23px;font-weight:700;font-variant-numeric:tabular-nums}.stat-number small{font-size:13px;font-weight:400;margin-left:3px}.summary-note{font-size:13px;color:#b9d0db;margin-top:18px}.day-panel{margin-top:18px;padding:23px}.day-panel h2{font-size:17px;margin-bottom:4px}.holiday-name{font-size:14px;color:#a34648;min-height:0}.all-shifts{display:grid;gap:10px;margin-top:17px}.all-shifts>div{display:flex;justify-content:space-between;align-items:center;font-size:14px}.below-panel{margin-top:22px}.below-panel:empty{display:none}footer{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#697d8b;padding:24px 3px 0}@media(max-width:800px){.work-layout{grid-template-columns:minmax(0,1fr)}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.day-panel{margin-top:0}.group-nav{max-width:none}}@media(max-width:480px){.site-header{padding:19px 16px}.brand-icon{width:41px;height:41px;font-size:29px}h1{font-size:19px}.brand-place{font-size:11px}main{padding:0 12px 20px}.group-nav{margin-bottom:15px}.calendar-toolbar{padding:20px 16px 16px}.calendar-toolbar h2{font-size:26px}.calendar-grid{padding:0 5px 12px}.day-cell{min-height:76px;gap:6px}.shift{padding:3px 5px;font-size:12px}.day-number{font-size:14px}.legend{padding:0 15px 17px}.work-layout{gap:15px}aside{grid-template-columns:1fr}.summary-panel,.day-panel{padding:20px}.summary-panel #summary{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;align-items:center}.summary-panel h2{margin:3px 0 15px}.hours-large{font-size:34px}.summary-stats{margin:0;border:0;border-left:1px solid #ffffff29;padding:0 0 0 17px;gap:13px}.summary-note{grid-column:1/-1;margin-top:0}.all-shifts{grid-template-columns:repeat(5,1fr);gap:6px}.all-shifts>div{flex-direction:column;gap:8px}.day-panel .shift{font-size:13px}footer{flex-direction:column;gap:2px}.month-nav{gap:5px}.icon-button{width:40px}.outline-button{font-size:14px;padding:8px 13px}}
:root{--focus:#0f9e91}.view-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.view-switch{display:flex;background:#e2eaf0;border-radius:9px;padding:4px}.view-switch button{border:0;background:transparent;color:#4d6372;padding:9px 16px;min-height:42px;font-weight:650;font-size:14px;border-radius:6px}.view-switch button[aria-pressed=true]{background:white;color:var(--navy);box-shadow:0 1px 4px #102f4612}.month-picker{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}.month-picker input{background:#fff;color:var(--navy);border:1px solid var(--line);padding:8px 10px;border-radius:8px;min-height:44px;max-width:172px}.forecast-note{background:#fff3d8;color:#795717;border:1px solid #ead7a9;border-radius:10px;padding:12px 16px;font-size:14px;margin-bottom:18px}.input-error{color:#a72f43;font-size:14px;margin:0 0 12px}.export-bar{padding:23px;display:flex;align-items:center;justify-content:space-between;gap:18px}.export-bar h2{font-size:17px;margin-bottom:5px}.export-bar p{font-size:14px;color:var(--muted)}.export-buttons{display:flex;gap:9px;flex-shrink:0}.export-buttons button{font-size:14px}.export-status{font-size:14px;color:var(--teal);padding:0 23px}.export-status:not(:empty){padding-bottom:20px}details{border-top:1px solid var(--line)}summary{cursor:pointer;padding:19px 23px;font-size:14px;font-weight:650}.rules-content{padding:0 23px 23px;font-size:14px;color:#49606e}.rules-content dl{margin:0}.rules-content dt{font-weight:700;color:var(--navy);margin-top:17px}.rules-content dt:first-child{margin-top:0}.rules-content dd{margin:4px 0 0;line-height:1.8}.rules-content p{margin-top:18px}.rules-content a{color:var(--teal)}@media(max-width:650px){.export-bar{align-items:flex-start;flex-direction:column}.view-controls{align-items:stretch;gap:9px}.view-switch button{padding:8px 11px}.month-picker{gap:5px}.month-picker input{max-width:155px;padding:8px}.month-picker>span{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.export-bar,.rules-content{padding:19px}summary{padding:17px 19px}}@media(max-width:359px){.view-controls{flex-wrap:wrap}.month-picker{flex:1}.month-picker input{max-width:none;width:100%}.view-switch{flex:1;white-space:nowrap}.view-switch button{flex:1}}
