:root{color:#23342f;font-synthesis:none;background:#f4f7f5;font-family:-apple-system,BlinkMacSystemFont,Yu Gothic UI,Yu Gothic,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0;font-size:16px}button,input,select,textarea{font:inherit}button{cursor:pointer}.state-page,.login-page{color:#30443b;text-align:center;background:#f7faf8;place-content:center;justify-items:center;gap:14px;min-height:100vh;padding:28px;display:grid}.state-page p,.login-page p{color:#718078;max-width:430px;line-height:1.8}.spinner{border:3px solid #dcebe4;border-top-color:#1c9c73;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-mark{color:#fff;background:#1c9c73;border-radius:20px;place-items:center;width:66px;height:66px;font-size:30px;font-weight:700;display:grid;box-shadow:0 12px 30px #1c9c7340}.login-page h1{max-width:430px;margin:0;font-size:clamp(27px,5vw,42px)}.google-login{color:#285344;background:#fff;border:1px solid #d5e3dc;border-radius:12px;margin-top:8px;padding:13px 25px;font-weight:700;text-decoration:none;box-shadow:0 3px 14px #37645110}.app-shell{background:#f8faf9;width:min(100%,760px);min-height:100vh;margin:auto;padding:0 18px 100px}.app-header{justify-content:space-between;align-items:center;height:70px;display:flex}.app-header h1,h2,p{margin:0}.app-header h1{letter-spacing:.04em;font-size:26px}.eyebrow,.section-label{color:#62a68d;letter-spacing:.14em;font-size:11px;font-weight:700}.icon-button,.month-button{color:#4b6259;background:#fff;border:0;border-radius:50%;width:38px;height:38px;font-size:25px;line-height:1;box-shadow:0 2px 10px #37645112}.header-actions{align-items:center;gap:9px;display:flex}.save-label{color:#779087;font-size:11px}.save-label.error,.save-label.conflict{color:#be625b}.save-label.offline{color:#9a7c3f}.notice{color:#527064;background:#f0f8f4;border:1px solid #d9e8e1;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 14px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.notice button{color:#1d8764;background:0 0;border:0;font-weight:700}.notice.offline{color:#79652f;background:#fff9e9;border-color:#eadfbe}.notice.conflict{color:#94504a;background:#fff4f3;border-color:#edc7c4}.calendar-controls{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.view-switch{background:#fff;border:1px solid #dce9e2;border-radius:9px;padding:2px;display:flex}.view-switch button{color:#70827a;background:0 0;border:0;border-radius:7px;min-width:43px;padding:4px 10px;font-size:12px;font-weight:700}.view-switch button.active{color:#fff;background:#238967}.month-toolbar{justify-content:center;align-items:center;gap:18px;margin-bottom:9px;display:flex}.month-toolbar h2{color:#35483f;text-align:center;min-width:190px;font-size:18px}.today-button{color:#268665;background:#fff;border:1px solid #d8e8df;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700}.calendar-card{background:#fff;border:1px solid #e3ebe7;border-radius:18px;overflow:hidden;box-shadow:0 4px 20px #3764510a}.week-header,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.week-header{color:#7e9088;text-align:center;padding:8px 4px 5px;font-size:12px;font-weight:600}.week-header span:nth-child(6){color:#5f9bdf}.week-header span:nth-child(7){color:#dd7676}.day-cell{text-align:left;background:#fff;border-top:1px solid #edf1ef;border-bottom:0;border-left:0;border-right:1px solid #edf1ef;min-width:0;min-height:66px;padding:6px 4px 4px;position:relative;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell:hover{background:#f1faf6}.day-cell.selected{background:#eaf8f1}.day-cell.muted{color:#bdc8c2;background:#fafcfb}.day-number{padding-left:3px;font-size:14px;font-weight:600;display:block}.payday-mark{color:#fff;text-align:center;background:#65b995;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:7px;right:6px}.calendar-entries{gap:2px;min-width:0;margin-top:4px;display:grid}.calendar-entry,.calendar-more{color:#67766f;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:9px;font-weight:600;line-height:1.2;display:block;overflow:hidden}.calendar-entry.shift{border-left:3px solid var(--entry-color);color:#44574e;padding-left:3px}.calendar-more{color:#97a49e}.calendar-grid.week-view .day-cell{min-height:128px}.calendar-grid.week-view .calendar-entry,.calendar-grid.week-view .calendar-more{font-size:11px;line-height:1.35}.day-section,.salary-list,.settings-page{padding-top:18px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-heading h2,.salary-list>h2{margin-top:2px;font-size:19px}.text-button,.minute-toggle{color:#157b5a;background:0 0;border:0;font-weight:700}.shift-item,.workplace-item,.salary-item{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #e4ece8;border-radius:13px;align-items:center;gap:12px;margin-bottom:9px;padding:15px;display:flex}.shift-item,.workplace-item{cursor:pointer}.shift-main{flex:1;gap:3px;min-width:0;display:grid}.shift-main strong,.workplace-item strong{font-size:15px}.shift-main span,.workplace-item span{color:#77867f;font-size:13px}.shift-main small{color:#8a9992;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.calendar-event{color:#52616d;background:#fafbfc;border:1px solid #e5e9ee;border-radius:12px;align-items:stretch;gap:11px;margin-bottom:9px;padding:12px 15px;display:flex}.event-line{background:#aebcc8;border-radius:3px;flex:none;width:3px}.calendar-event div{gap:2px;display:grid}.calendar-event strong{font-size:14px}.calendar-event span{color:#89959e;font-size:12px}.workplace-dot{border-radius:50%;flex:none;width:9px;height:9px}.workplace-dot.large{width:13px;height:13px}.chevron{color:#a7b5ae;font-size:24px}.empty-state{color:#8a9992;text-align:center;background:#fff;border:1px dashed #cbd8d2;border-radius:13px;padding:23px 10px;font-size:13px}.daily-total{color:#718078;text-align:right;margin:-5px 0 10px;font-size:13px}.salary-hero{color:#fff;background:linear-gradient(130deg,#137a59,#269f76);border-radius:18px;padding:26px;box-shadow:0 10px 22px #287c6033}.salary-hero p{opacity:.85;font-size:13px}.salary-hero strong{letter-spacing:.02em;margin:5px 0;font-size:34px;display:block}.salary-hero span{opacity:.9;font-size:13px}.salary-actual-total{border-top:1px solid #ffffff50;gap:14px;margin-top:17px;padding-top:13px;display:flex}.salary-actual-total span{font-size:12px}.salary-list>h2{margin-bottom:13px}.salary-item{display:block}.salary-item-title{align-items:center;gap:8px;display:flex}.salary-item-title strong:last-child{margin-left:auto}.salary-item p{color:#75847d;margin-top:8px;font-size:12px}.actual-pay-row{color:#5f7167;border-top:1px solid #edf2ef;justify-content:space-between;align-items:center;gap:10px;margin-top:13px;padding-top:10px;font-size:12px;display:flex}.small-outline-button{color:#218862;background:#fff;border:1px solid #abd7c3;border-radius:7px;flex:none;padding:5px 10px;font-size:11px;font-weight:700}.account-card{background:#fff;border:1px solid #dfeae4;border-radius:15px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:17px;display:flex}.account-card div,.workplace-copy{flex:1;gap:4px;min-width:0;display:grid}.account-card strong{font-size:14px}.account-card span,.workplace-copy span{color:#7b8a83;font-size:12px}.conflict-section{background:#fff7f6;border:1px solid #edc7c4;border-radius:15px;margin-bottom:28px;padding:16px}.conflict-section h2{margin:3px 0 5px;font-size:17px}.conflict-section>div>p:last-child{color:#8a6663;font-size:11px;line-height:1.6}.conflict-card{background:#fff;border-radius:11px;gap:8px;margin-top:13px;padding:13px;display:grid}.conflict-choice{grid-template-columns:54px 1fr auto;align-items:center;gap:8px;display:grid}.conflict-choice>span{color:#8f6a66;font-size:10px;font-weight:700}.conflict-choice p{color:#596a62;font-size:11px}.bottom-nav{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-top:1px solid #e6ede9;justify-content:center;gap:min(17vw,125px);height:68px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:#8a9992;background:0 0;border:0;align-content:center;gap:3px;min-width:72px;font-size:11px;display:grid}.bottom-nav span{font-size:19px}.bottom-nav button.active{color:#117957;font-weight:700}.fab{z-index:2;color:#fff;background:#137a59;border:0;border-radius:50%;width:54px;height:54px;font-size:32px;line-height:1;position:fixed;bottom:88px;right:max(22px,50vw - 358px);box-shadow:0 8px 20px #19865f55}.dialog-backdrop{z-index:5;background:#183b2b55;place-items:end center;padding:14px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:20px;width:min(100%,520px);max-height:92vh;padding:21px;overflow:auto;box-shadow:0 12px 40px #142f2480}.dialog-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.dialog-heading h2{font-size:19px}.dialog label{color:#506259;gap:6px;margin-top:12px;font-size:13px;font-weight:700;display:grid}.dialog input,.dialog select,.dialog textarea{color:#34473e;background:#fff;border:1px solid #dce6e0;border-radius:9px;width:100%;min-height:43px;padding:9px 11px}.dialog textarea{resize:vertical;line-height:1.5}.dialog input[type=color]{padding:3px}.rate-section{margin-top:16px}.rate-heading,.rate-period-heading{color:#506259;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.rate-period{background:#f9fcfa;border:1px solid #e2ece6;border-radius:10px;margin-top:9px;padding:12px}.rate-period label{margin-top:9px}.remove-rate-button{color:#bf625c;background:0 0;border:0;font-size:11px}.time-inputs{grid-template-columns:1fr 1fr;gap:10px;display:grid}.time-fields{grid-template-columns:1fr 1fr;gap:10px;margin-top:13px;display:grid}.time-fields fieldset{border:1px solid #dce6e0;border-radius:11px;min-width:0;margin:0;padding:11px}.time-fields legend{color:#506259;padding:0 4px;font-size:13px;font-weight:700}.time-parts{grid-template-columns:1fr auto 1fr;align-items:end;gap:6px;display:grid}.time-parts label{min-width:0;margin-top:0}.time-parts label span{color:#839188;font-size:10px}.time-parts b{color:#829087;padding-bottom:12px}.time-candidates{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.time-candidates button{color:#32775f;background:#f8fcfa;border:1px solid #cae2d7;border-radius:7px;flex:1 0 52px;padding:5px 4px;font-size:11px;font-weight:700}.time-candidates button.active{color:#fff;background:#258967;border-color:#258967}.help-text{color:#7f9087;margin-top:13px;font-size:12px;line-height:1.6}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:23px;display:flex}.primary-button,.danger-button{border-radius:9px;min-height:41px;padding:0 18px;font-weight:700}.primary-button{color:#fff;background:#137a59;border:0}.danger-button{color:#c9655d;background:#fff;border:1px solid #f0c2bf;margin-right:auto}.dialog.compact{max-width:430px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #67c6a5}@media (width>=761px){.app-shell{border-left:1px solid #e4ece8;border-right:1px solid #e4ece8}.dialog-backdrop{place-items:center}}@media (width<=520px){.time-fields{grid-template-columns:1fr}}@media (width<=420px){.app-shell{padding-left:10px;padding-right:10px}.app-header{height:64px}.month-toolbar{gap:8px}.month-toolbar h2{min-width:175px;font-size:16px}.day-cell{min-height:62px;padding-left:2px;padding-right:2px}.calendar-entry,.calendar-more{font-size:8px}.calendar-grid.week-view .day-cell{min-height:112px}.calendar-grid.week-view .calendar-entry,.calendar-grid.week-view .calendar-more{font-size:9px}.salary-hero strong{font-size:29px}.conflict-choice{grid-template-columns:1fr auto}.conflict-choice>span{grid-column:1/-1}}
