:root{--bg:#f4f7fb;--surface:#fff;--surface-soft:#f7fafd;--ink:#0f1a2c;--ink-soft:#4a5a72;--ink-muted:#7889a0;--line:#e3ecf5;--line-strong:#cdd9e6;--accent:#1f7ae0;--accent-soft:#e6f1ff;--shadow-sm:0 1px 2px #0f1a2c0f;--shadow-md:0 6px 18px #0f1a2c12;--shadow-lg:0 20px 48px #0f1a2c1a;color:var(--ink);background:var(--bg);font-feature-settings:"ss01", "cv11";font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{font:inherit;cursor:pointer}main{flex-direction:column;gap:clamp(12px,1.6vw,18px);max-width:1280px;margin:0 auto;padding:clamp(12px,2.4vw,24px);display:flex}.topbar{align-items:center;gap:12px;display:flex}.topbar img{border-radius:10px;width:36px;height:36px}.topbar strong{letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.topClock{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.85rem;font-weight:600}.syncBadge{text-transform:lowercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.7rem;font-weight:600;transition:background .12s;display:inline-flex}.syncBadge:hover{background:#dbe9f9}.syncBadge.syncing{color:#8a6300;background:#fff3d4}.syncBadge.offline{color:#b3261e;background:#fde0e0}.syncBadge.syncing svg{animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.iconButton{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.iconButton:hover{background:var(--accent);border-color:var(--accent);color:#fff}.gate{background:linear-gradient(160deg, var(--bg), #e0ecf8);z-index:50;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gate form{background:var(--surface);width:100%;max-width:360px;box-shadow:var(--shadow-lg);border-radius:24px;flex-direction:column;align-items:stretch;gap:12px;padding:32px 28px;display:flex}.gateIcon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.gate h1{letter-spacing:-.025em;margin:0;font-size:1.4rem;font-weight:700}.gate>form>p{color:var(--ink-muted);margin:0 0 8px;font-size:.92rem;line-height:1.45}.gate input{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);border-radius:12px;outline:none;padding:12px 14px;font-size:1rem;font-weight:500;transition:border-color .12s,box-shadow .12s}.gate input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f7ae024}.gate button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1856b6,#1ba0c0);border:0;border-radius:12px;padding:12px;font-size:1rem;font-weight:700;transition:opacity .12s,transform 80ms}.gate button:disabled{opacity:.5;cursor:default}.gate button:not(:disabled):active{transform:translateY(1px)}.gateError{color:#b3261e;margin:0;font-size:.85rem;font-weight:600}.uploadHero{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.uploadButton,.nowButton{border:0;border-radius:18px;justify-content:center;align-items:center;gap:10px;min-height:56px;padding:0 22px;font-size:1rem;font-weight:700;transition:transform 80ms,box-shadow .2s;display:inline-flex}.uploadButton{color:#fff;cursor:pointer;box-shadow:var(--shadow-md);letter-spacing:-.005em;background:linear-gradient(135deg,#1856b6,#1ba0c0);flex:1}.uploadButton:hover{box-shadow:var(--shadow-lg)}.uploadButton:active{transform:translateY(1px)}.uploadButton input{display:none}.nowButton{background:var(--surface);color:var(--accent);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.nowButton:hover{border-color:var(--line-strong)}.progress{color:var(--ink-soft);align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:inline-flex}.monthPanel,.nowCard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md)}.nowCard{border-radius:clamp(18px,2vw,26px);flex-direction:column;justify-content:center;min-height:clamp(170px,22vw,220px);padding:clamp(20px,2.4vw,30px);display:flex;position:relative;overflow:hidden}.nowCard:before{content:"";pointer-events:none;background:radial-gradient(circle,#fff9,#0000 70%);width:220px;height:220px;position:absolute;inset:auto -40px -40px auto}.nowCard>span{text-transform:uppercase;letter-spacing:.18em;color:var(--ink-muted);font-size:.7rem;font-weight:700;position:relative}.nowCard h1{letter-spacing:-.045em;margin:12px 0;font-size:clamp(2.8rem,7vw,5.4rem);font-weight:700;line-height:.92;position:relative}.nowCard p{color:var(--ink-soft);margin:0;font-size:1.1rem;font-weight:500;position:relative}.nowCard b{background:var(--ink);color:#fff;letter-spacing:-.005em;border-radius:999px;align-self:flex-start;margin-top:18px;padding:8px 14px;font-size:.85rem;font-weight:600;position:relative}.nowCard.morning{background:linear-gradient(140deg,#fff4d4,#fff8e6)}.nowCard.afternoon{background:linear-gradient(140deg,#ffe2c8,#fff0e0)}.nowCard.night{color:#fff;background:linear-gradient(160deg,#14224a,#0e4a78)}.nowCard.night>span{color:#dceeffb3}.nowCard.night p{color:#dceeffd9}.nowCard.night b{color:var(--ink);background:#fff}.nowCard.rest{background:linear-gradient(140deg,#d9f5e3,#ecfbf1)}.nowCard.vacation{background:linear-gradient(140deg,#d2f0dc,#e8faef)}.nowCard.free{background:linear-gradient(140deg,#eaf2fb,#f4f8fd)}.monthPanel{border-radius:clamp(16px,1.8vw,22px);padding:clamp(12px,1.6vw,22px)}.monthTitle{color:var(--ink-soft);align-items:center;gap:10px;margin-bottom:14px;display:flex}.monthTitle h2{text-transform:capitalize;letter-spacing:-.025em;color:var(--ink);margin:0;font-size:1.3rem;font-weight:700}.monthNav{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.monthNav .iconButton{width:30px;height:30px}.todayChip{border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent);cursor:pointer;text-transform:lowercase;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:600;transition:background .12s,color .12s}.todayChip:hover{background:var(--accent);color:#fff}.weekRow,.monthGrid{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(3px,.6vw,8px);display:grid}.weekRow{margin-bottom:clamp(3px,.6vw,8px)}.weekRow span{text-align:center;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.cell{border:1px solid var(--line);background:var(--surface-soft);border-radius:clamp(8px,1vw,14px);flex-direction:column;gap:3px;min-height:clamp(72px,11vw,132px);padding:clamp(5px,.7vw,9px);transition:border-color .12s;display:flex}.cell:hover{border-color:var(--line-strong)}.cell.today{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.cell header{color:var(--ink-soft);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;margin-bottom:clamp(2px,.4vw,5px);font-size:clamp(.72rem,1vw,.9rem);font-weight:600;display:flex}.cell.today header{color:var(--accent)}.cell header em{background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:.6rem;font-style:normal;font-weight:600}.pill{color:#fff;border-radius:clamp(4px,.55vw,8px);min-width:0;padding:clamp(2px,.35vw,4px) clamp(4px,.55vw,7px);font-weight:600;line-height:1.18;box-shadow:inset 3px 0 #0000002e}.pill strong{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.005em;font-size:clamp(.62rem,.85vw,.8rem);font-weight:600;display:block;overflow:hidden}.pill small{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;margin-top:1px;font-size:clamp(.54rem,.7vw,.66rem);font-weight:500;display:block;overflow:hidden}.pill.morning{background:#4285f4}.pill.afternoon{background:#ef7e3b}.pill.night{background:#283a72}.pill.training{background:#5a6cf0}.pill.dc{background:#6aa5e6}.pill.rest{background:#34a853}.pill.vacation{background:#168845}.pill.training.vmer,.pill.vmer{color:#2b2b2b;background:#f5b836}.pill.eem{box-shadow:inset 3px 0 #b3261e}.pill.health,.pill.cleaning{background:#d65a57}.pill.period{background:#525866}.pill.birthday,.pill.meal{background:#8e24aa}.pill.holiday{background:#009688}.pill.personal,.pill.other{background:#95a2b4}.cell{cursor:pointer}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nowCard.dc{background:linear-gradient(140deg,#dceaf9,#ecf3fb)}.modalBackdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f1a2c8c;justify-content:center;align-items:flex-end;padding:0;animation:.14s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.modal{background:var(--surface);width:100%;max-width:540px;max-height:86vh;box-shadow:var(--shadow-lg);border-radius:24px 24px 0 0;flex-direction:column;animation:.2s cubic-bezier(.25,.8,.25,1) slideUp;display:flex;overflow:hidden}.modalHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 22px 14px;display:flex}.modalDate{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.modalHeader h2{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:700}.modalEmpty{color:var(--ink-muted);text-align:center;padding:24px;font-size:.95rem}.detailList{flex:1;margin:0;padding:8px 0 16px;list-style:none;overflow-y:auto}.detailRow{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:12px 22px;transition:background .12s;display:flex}.detailRow:last-child{border-bottom:0}.detailRow:hover{background:var(--surface-soft)}.detailDot{background:var(--ink-muted);border-radius:999px;flex-shrink:0;width:8px;height:8px;margin-top:7px}.detailRow.morning .detailDot{background:#4285f4}.detailRow.afternoon .detailDot{background:#ef7e3b}.detailRow.night .detailDot{background:#283a72}.detailRow.dc .detailDot{background:#6aa5e6}.detailRow.rest .detailDot{background:#34a853}.detailRow.vacation .detailDot{background:#168845}.detailRow.training .detailDot{background:#5a6cf0}.detailRow.health .detailDot,.detailRow.cleaning .detailDot{background:#d65a57}.detailRow.period .detailDot{background:#525866}.detailRow.birthday .detailDot,.detailRow.meal .detailDot{background:#8e24aa}.detailRow.holiday .detailDot{background:#009688}.detailRow.vmer .detailDot{background:#f5b836;box-shadow:0 0 0 2px #f5b83630}.detailRow.eem .detailDot{box-shadow:0 0 0 2px #b3261e30}.detailMain{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.detailMain strong{color:var(--ink);font-size:1rem;font-weight:700}.detailMeta{color:var(--ink-soft);font-size:.82rem;font-weight:500}.detailRaw{color:var(--ink-muted);margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}.iconButton.ghost{color:var(--ink-muted);background:0 0;border:0}.iconButton.ghost:hover{color:#b3261e;background:#fde0e0}@media (width>=720px){.modalBackdrop{align-items:center;padding:24px}.modal{border-radius:24px;max-height:80vh}}.settingsModal{max-width:480px}.settingsBody{flex-direction:column;gap:12px;padding:20px 22px 24px;display:flex;overflow-y:auto}.fieldLabel{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.settingsInput{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);word-break:break-all;border-radius:12px;outline:none;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;transition:border-color .12s,box-shadow .12s}.settingsInput:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f7ae024}.hintText{color:var(--ink-muted);margin:0;font-size:.85rem;line-height:1.5}.hintText strong{color:var(--ink-soft);font-weight:700}.settingsActions{gap:8px;margin-top:4px;display:flex}.primaryBtn,.secondaryBtn{cursor:pointer;border-radius:12px;flex:1;padding:11px 16px;font-size:.95rem;font-weight:600;transition:opacity .12s,background .12s}.primaryBtn{color:#fff;background:linear-gradient(135deg,#1856b6,#1ba0c0);border:0}.secondaryBtn{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft)}.primaryBtn:disabled,.secondaryBtn:disabled{opacity:.5;cursor:default}.secondaryBtn:not(:disabled):hover{background:var(--surface-soft);color:var(--accent);border-color:var(--accent)}.syncStatus{color:var(--ink-soft);border-top:1px solid var(--line);padding-top:8px;font-size:.85rem}.syncStatus strong{font-weight:600}.syncErr{color:#b3261e;margin-top:4px;font-size:.8rem}.settingsOk{color:#1a8a4a;margin:0;font-size:.88rem;font-weight:600}.settingsErr{color:#b3261e;margin:0;font-size:.88rem;font-weight:600}@media (width<=720px){.topbar{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f4f7fbd9;margin:calc(-1*clamp(12px,2.4vw,24px)) calc(-1*clamp(12px,2.4vw,24px)) 0;padding:8px clamp(12px,2.4vw,24px);position:sticky;top:0}.nowButton span,.cell header em{display:none}}@media (width<=480px){.pill small{display:none}.pill strong{font-size:.66rem}.topbar img{width:32px;height:32px}.topbar strong{font-size:1rem}}@media (width>=1024px){main{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(320px,26%) 1fr;gap:12px 16px;height:100vh;max-height:100vh;padding:18px;display:grid;overflow:hidden}.topbar{grid-area:1/1/auto/-1}.uploadHero{grid-area:2/1}.nowCard{grid-area:3/1;min-height:0;padding:26px}.nowCard h1{letter-spacing:-.05em;margin:12px 0;font-size:clamp(2.4rem,4vw,4rem)}.nowCard p{font-size:1.05rem}.nowCard b{margin-top:16px}.monthPanel{flex-direction:column;grid-area:2/2/-1;min-height:0;padding:16px;display:flex}.monthTitle{margin-bottom:10px}.monthTitle h2{font-size:1.35rem}.monthGrid{flex:1;grid-auto-rows:minmax(0,1fr);min-height:0}.cell{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-height:0;overflow-y:auto}.cell::-webkit-scrollbar{width:5px}.cell::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.cell::-webkit-scrollbar-track{background:0 0}.uploadButton{font-size:1.05rem}.uploadButton,.nowButton{min-height:52px}}
