:root{color:#102d36;font-synthesis:none;text-rendering:optimizelegibility;background:#edf3f0;font-family:Hiragino Sans,Yu Gothic UI,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{background:#edf3f0;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #24b47e47}::selection{color:#0c2630;background:#73f2bf}.app-shell{min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fbf9f0;border-bottom:1px solid #d8e4df;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1440px;margin:auto;padding:14px clamp(16px,4vw,48px);display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#73f2bf;background:#0c2630;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:-.04em;font-size:17px}.brand small{color:#6f858b;margin-top:2px;font-size:12px}.button{border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-weight:700;transition:all .18s;display:inline-flex}.button-primary{color:#fff;background:#0c2630;box-shadow:0 8px 22px #0c263024}.button-primary:hover{background:#173b46;transform:translateY(-1px)}.button-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.button-outline{color:#15343d;background:#fff;border:1px solid #cedbd6}.button-outline:hover{background:#f1f6f3}.main{max-width:1440px;margin:auto;padding:28px clamp(16px,4vw,48px) 56px}.summary-grid{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:20px;display:grid}.hero-card{color:#fff;background:#0c2630;border-radius:28px;padding:30px;position:relative;overflow:hidden;box-shadow:0 20px 60px #0c263021}.hero-orbit{border:35px solid #73f2bf14;border-radius:50%;width:250px;height:250px;position:absolute;top:-82px;right:-55px}.hero-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.eyebrow{color:#fff9;align-items:center;gap:8px;margin:0 0 20px;font-size:14px;display:flex}.hero-label{color:#ffffff9e;margin:0;font-size:14px}.hero-number{align-items:flex-end;gap:10px;margin:4px 0 0;display:flex}.hero-number strong{letter-spacing:-.07em;font-size:clamp(50px,7vw,66px);line-height:1}.hero-number span{color:#ffffff9e;padding-bottom:7px;font-size:18px}.remaining{white-space:nowrap;color:#0c2630;background:#73f2bf;border-radius:99px;padding:8px 12px;font-size:13px;font-weight:800}.progress{background:#ffffff1a;border-radius:99px;height:10px;margin-top:28px;overflow:hidden}.progress span{border-radius:inherit;background:#73f2bf;height:100%;transition:width .3s;display:block}.hero-stats{border-top:1px solid #ffffff1a;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;padding-top:20px;display:grid}.hero-stats small,.hero-stats strong{display:block}.hero-stats small{color:#ffffff80}.hero-stats strong{margin-top:5px;font-size:21px}.hero-stats em{color:#ffffff8c;margin-left:4px;font-size:14px;font-style:normal;font-weight:500}.mini-grid{grid-template-rows:1fr 1fr;gap:16px;display:grid}.mini-card{background:#f8fbf9;border:1px solid #d8e4df;border-radius:24px;min-height:150px;padding:22px}.mini-card .icon{border-radius:13px;place-items:center;width:38px;height:38px;display:grid}.mini-card .mint{color:#0e7c58;background:#e1f7ec}.mini-card .amber{color:#a46213;background:#fff0dc}.mini-card small,.mini-card strong{display:block}.mini-card small{color:#6f858b;margin-top:18px}.mini-card strong{letter-spacing:-.045em;margin-top:5px;font-size:clamp(24px,3vw,31px)}.warning,.error{border-radius:16px;align-items:center;gap:12px;margin-top:18px;padding:15px 18px;display:flex}.warning{color:#704a12;background:#fff7e9;border:1px solid #f0c98c}.warning strong,.warning span{display:block}.warning span{margin-top:2px;font-size:14px}.error{color:#8c291e;background:#fff2f0;border:1px solid #f0b5ad}.error span{flex:1}.error button{color:inherit;background:0 0;border:0;font-weight:800}.workspace{background:#f8fbf9;border:1px solid #d8e4df;border-radius:28px;margin-top:22px;padding:clamp(18px,3vw,32px)}.workspace-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.workspace h1{letter-spacing:-.045em;margin:0;font-size:26px}.workspace-head p{color:#70858b;margin:5px 0 0;font-size:14px}.segmented{background:#e9f0ed;border-radius:13px;padding:4px;display:flex}.segmented button{color:#61777d;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;min-height:38px;padding:0 15px;font-weight:700;display:flex}.segmented button.active{color:#102d36;background:#fff;box-shadow:0 2px 8px #0c263014}.month-nav{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.month-nav h2{margin:0;font-size:19px}.month-nav button{color:#26464f;background:0 0;border:0;border-radius:10px;width:38px;height:38px}.month-nav button:hover{background:#e8f1ed}.calendar{background:#fff;border:1px solid #d8e4df;border-radius:18px;overflow:hidden}.weekdays,.days{grid-template-columns:repeat(7,1fr);display:grid}.weekdays{background:#f1f6f3;border-bottom:1px solid #d8e4df}.weekdays span{text-align:center;color:#6e8389;padding:12px 4px;font-size:12px;font-weight:800}.days button{text-align:left;color:#18343d;background:#fff;border:1px solid #e3ebe7;border-top:0;border-left:0;min-width:0;min-height:112px;padding:10px;transition:background .16s}.days button:hover{background:#f1faf6}.days button.outside{color:#a6b3b0;background:#fafcfb}.day-number{border-radius:50%;place-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:inline-grid}.days button.today .day-number{color:#73f2bf;background:#0c2630}.shift-pill{color:#11684d;background:#dff8ec;border-radius:9px;margin-top:7px;padding:7px 8px;font-size:12px;font-weight:700;display:block;overflow:hidden}.shift-pill b{display:none}.chart-layout{grid-template-columns:minmax(0,1fr) 320px;gap:22px;display:grid}.chart-card{background:#fff;border:1px solid #d8e4df;border-radius:18px;padding:24px}.chart-card h2{margin:0;font-size:18px}.chart-card p{color:#71858b;margin:5px 0 25px;font-size:14px}.chart-box{height:280px}.recent{color:#fff;background:#102e37;border-radius:18px;padding:22px}.recent>p{color:#ffffff8c;margin:0 0 16px;font-size:14px}.recent button{text-align:left;color:#fff;background:#ffffff12;border:0;border-radius:12px;justify-content:space-between;gap:12px;width:100%;margin-bottom:9px;padding:12px;display:flex}.recent button:hover{background:#ffffff1f}.recent button>span:last-child{text-align:right}.recent strong,.recent small{display:block}.recent strong{font-size:13px}.recent small{color:#ffffff8c;margin-top:4px;font-size:11px}.recent small.green{color:#73f2bf}.empty{color:#fff9;border:1px dashed #fff3;border-radius:12px;padding:18px;font-size:14px;line-height:1.7}.loading{color:#fff9;align-items:center;gap:8px;font-size:14px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04151b99;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(570px,100%);max-height:94vh;overflow-y:auto;box-shadow:0 28px 90px #04151b4d}.modal-head{color:#fff;background:#0c2630;padding:24px 28px;position:relative}.modal-icon{color:#0c2630;background:#73f2bf;border-radius:14px;place-items:center;width:40px;height:40px;display:grid}.modal-head h2{margin:14px 0 5px;font-size:24px}.modal-head p{color:#ffffff9e;margin:0;font-size:14px}.close{color:#fff;background:#ffffff14;border:0;border-radius:50%;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:18px;right:18px}.form-grid{grid-template-columns:1fr 1fr;gap:17px;padding:24px 28px 10px;display:grid}.form-grid label{color:#29464e;font-size:14px;font-weight:700}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid textarea{color:#102d36;background:#fff;border:1px solid #cbdad4;border-radius:11px;width:100%;margin-top:7px;padding:11px 12px}.form-grid textarea{resize:vertical;min-height:78px}.calculation{background:#f1f6f3;border-radius:16px;grid-template-columns:1fr 1fr;padding:17px;display:grid}.calculation>div:last-of-type{text-align:right}.calculation small,.calculation strong{display:block}.calculation small{color:#657b81;font-size:13px}.calculation strong{margin-top:3px;font-size:20px}.calculation p{color:#71858b;border-top:1px solid #d7e4df;grid-column:1/-1;justify-content:space-between;margin:14px 0 0;padding-top:13px;font-size:13px;display:flex}.calculation b{color:#18343d;margin-left:6px}.calculation b.danger{color:#c6402d}.form-warning{color:#922f23;background:#fff0ed;border-radius:12px;align-items:center;gap:9px;padding:12px 14px;font-size:14px;font-weight:700;display:flex}.modal-actions{justify-content:flex-end;gap:9px;padding:15px 28px 26px;display:flex}.modal-actions .delete{color:#c6402d;background:0 0;margin-right:auto}.modal-actions .delete:hover{background:#fff0ed}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:80;color:#fff;background:#0c2630;border-radius:12px;padding:12px 18px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #0c263040}@media (width<=900px){.summary-grid{grid-template-columns:1fr}.mini-grid{grid-template-rows:none;grid-template-columns:1fr 1fr}.chart-layout{grid-template-columns:1fr}}@media (width<=640px){.topbar-inner{padding-block:12px}.brand small{white-space:nowrap;text-overflow:ellipsis;max-width:128px;overflow:hidden}.button{padding-inline:13px}.main{padding-top:20px}.hero-card{padding:24px}.hero-top{flex-direction:column}.remaining{position:absolute;top:0;right:0}.eyebrow{max-width:150px}.hero-number strong{font-size:54px}.mini-card{min-height:146px;padding:18px}.mini-card strong{font-size:24px}.workspace{padding-inline:14px}.workspace-head{flex-direction:column;align-items:stretch}.segmented{align-self:stretch}.segmented button{flex:1;justify-content:center;padding-inline:8px}.days button{min-height:91px;padding:7px}.shift-pill span{display:none}.shift-pill b{font-size:11px;display:block}.form-grid{grid-template-columns:1fr;padding-inline:20px}.form-grid .full{grid-column:auto}.calculation{grid-template-columns:1fr 1fr}.calculation p{grid-column:1/-1}.modal-head,.modal-actions{padding-inline:20px}.modal-actions{flex-wrap:wrap}.modal-actions .delete{width:100%;margin:0}}
