: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,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select: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 .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 .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-card .hero-orbit{border:35px solid #73f2bf14;border-radius:50%;width:250px;height:250px;position:absolute;top:-101px;right:-55px}.hero-card .hero-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.hero-card .eyebrow{color:#fff9;align-items:center;gap:8px;margin:0 0 20px;font-size:14px;display:flex}.hero-card .hero-label{color:#ffffff9e;margin:0;font-size:14px}.hero-card .hero-number{align-items:flex-end;gap:10px;margin:4px 0 0;display:flex}.hero-card .hero-number strong{letter-spacing:-.07em;font-size:clamp(50px,7vw,66px);line-height:1}.hero-card .hero-number span{color:#ffffff9e;padding-bottom:7px;font-size:18px}.hero-card .remaining{white-space:nowrap;color:#0c2630;background:#73f2bf;border-radius:99px;padding:8px 12px;font-size:13px;font-weight:800}.hero-card .progress{background:#ffffff1a;border-radius:99px;height:10px;margin-top:28px;overflow:hidden}.hero-card .progress span{border-radius:inherit;background:#73f2bf;height:100%;transition:width .3s;display:block}.hero-card .hero-stats{border-top:1px solid #ffffff1a;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;padding-top:20px;display:grid}.hero-card .hero-stats small,.hero-card .hero-stats strong{display:block}.hero-card .hero-stats small{color:#ffffff80}.hero-card .hero-stats strong{margin-top:5px;font-size:21px}.hero-card .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-grid .mini-card{background:#f8fbf9;border:1px solid #d8e4df;border-radius:24px;min-height:150px;padding:22px}.mini-grid .mini-card .icon{border-radius:13px;place-items:center;width:38px;height:38px;display:grid}.mini-grid .mini-card .mint{color:#0e7c58;background:#e1f7ec}.mini-grid .mini-card .amber{color:#a46213;background:#fff0dc}.mini-grid .mini-card small,.mini-grid .mini-card strong{display:block}.mini-grid .mini-card small{color:#6f858b;margin-top:18px}.mini-grid .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}.recent-section{background:#f8fbf9;border:1px solid #d8e4df;border-radius:24px;margin-top:22px;padding:22px}.recent-section .section-title h2{letter-spacing:-.035em;margin:0;font-size:20px}.recent-section .section-title p{color:#70858b;margin:4px 0 0;font-size:13px}.recent-section .recent-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.recent-section .recent-grid button{text-align:left;color:#17343d;background:#fff;border:1px solid #d8e4df;border-radius:15px;justify-content:space-between;gap:12px;min-width:0;padding:15px;transition:all .16s;display:flex}.recent-section .recent-grid button>span{min-width:0}.recent-section .recent-grid button>span:last-child{text-align:right}.recent-section .recent-grid button>span:last-child small{color:#12835d;font-weight:700}.recent-section .recent-grid strong,.recent-section .recent-grid small{display:block}.recent-section .recent-grid strong{font-size:14px}.recent-section .recent-grid small{color:#71858b;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.recent-section .recent-loading{color:#70858b;align-items:center;gap:8px;margin-top:16px;display:flex}.recent-section .recent-empty{color:#70858b;border:1px dashed #cbdad4;border-radius:14px;margin-top:16px;padding:18px}.recent-grid button:hover{background:#f1faf6;border-color:#9fd8c1;transform:translateY(-1px)}.workspace{background:#f8fbf9;border:1px solid #d8e4df;border-radius:28px;margin-top:22px;padding:clamp(18px,3vw,32px)}.workspace h1{letter-spacing:-.045em;margin:0;font-size:26px}.workspace .workspace-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.workspace .workspace-head p{color:#70858b;margin:5px 0 0;font-size:14px}.workspace .segmented{background:#e9f0ed;border-radius:13px;padding:4px;display:flex}.workspace .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}.workspace .segmented button.active{color:#102d36;background:#fff;box-shadow:0 2px 8px #0c263014}.workspace .month-nav{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.workspace .month-nav h2{margin:0;font-size:19px}.workspace .month-nav button{color:#26464f;background:0 0;border:0;border-radius:10px;width:38px;height:38px}.workspace .calendar{background:#fff;border:1px solid #d8e4df;border-radius:18px;overflow:hidden}.workspace .calendar .weekdays,.workspace .calendar .days{grid-template-columns:repeat(7,1fr);display:grid}.workspace .calendar .weekdays{background:#f1f6f3;border-bottom:1px solid #d8e4df}.workspace .calendar .weekdays span{text-align:center;color:#6e8389;padding:12px 4px;font-size:12px;font-weight:800}.workspace .calendar .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}.workspace .calendar .days button.outside{color:#a6b3b0;background:#fafcfb}.workspace .calendar .days button.today .day-number{color:#73f2bf;background:#0c2630}.workspace .calendar .days .day-number{border-radius:50%;place-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:inline-grid}.workspace .calendar .days .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}.workspace .calendar .days .shift-pill b{display:none}.workspace .chart-card{background:#fff;border:1px solid #d8e4df;border-radius:18px;padding:24px}.workspace .chart-card h2{margin:0;font-size:18px}.workspace .chart-card p{color:#71858b;margin:5px 0 0;font-size:14px}.workspace .chart-card .chart-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.workspace .chart-card .chart-filters{gap:10px;display:flex}.workspace .chart-card .chart-filters label{color:#647a80;font-size:11px;font-weight:700}.workspace .chart-card .chart-filters select{color:#17343d;background:#fff;border:1px solid #cbdad4;border-radius:10px;min-width:125px;margin-top:5px;padding:9px 30px 9px 10px;font-weight:700}.workspace .chart-card .chart-box{height:320px}.month-nav button:hover{background:#e8f1ed}.days button:hover{background:#f1faf6}.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-backdrop .modal{background:#fff;border-radius:22px;width:min(570px,100%);max-height:94vh;overflow-y:auto;box-shadow:0 28px 90px #04151b4d}.modal-backdrop .modal .modal-head{color:#fff;background:#0c2630;padding:24px 28px;position:relative}.modal-backdrop .modal .modal-head .modal-icon{color:#0c2630;background:#73f2bf;border-radius:14px;place-items:center;width:40px;height:40px;display:grid}.modal-backdrop .modal .modal-head h2{margin:14px 0 5px;font-size:24px}.modal-backdrop .modal .modal-head p{color:#ffffff9e;margin:0;font-size:14px}.modal-backdrop .modal .modal-head .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}.modal-backdrop .modal .form-grid{grid-template-columns:1fr 1fr;gap:17px;padding:24px 28px 10px;display:grid}.modal-backdrop .modal .form-grid label{color:#29464e;font-size:14px;font-weight:700}.modal-backdrop .modal .form-grid .full{grid-column:1/-1}.modal-backdrop .modal .form-grid input,.modal-backdrop .modal .form-grid textarea{color:#102d36;background:#fff;border:1px solid #cbdad4;border-radius:11px;width:100%;margin-top:7px;padding:11px 12px}.modal-backdrop .modal .form-grid textarea{resize:vertical;min-height:78px}.modal-backdrop .modal .form-grid .calculation{background:#f1f6f3;border-radius:16px;grid-template-columns:1fr 1fr;padding:17px;display:grid}.modal-backdrop .modal .form-grid .calculation>div:last-of-type{text-align:right}.modal-backdrop .modal .form-grid .calculation small,.modal-backdrop .modal .form-grid .calculation strong{display:block}.modal-backdrop .modal .form-grid .calculation small{color:#657b81;font-size:13px}.modal-backdrop .modal .form-grid .calculation strong{margin-top:3px;font-size:20px}.modal-backdrop .modal .form-grid .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}.modal-backdrop .modal .form-grid .calculation b{color:#18343d;margin-left:6px}.modal-backdrop .modal .form-grid .calculation b.danger{color:#c6402d}.modal-backdrop .modal .form-grid .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-backdrop .modal .modal-actions{justify-content:flex-end;gap:9px;padding:15px 28px 26px;display:flex}.modal-backdrop .modal .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}.recent-grid{grid-template-columns:1fr}}@media (width<=640px){.topbar-inner{padding-block:12px}.brand small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button{padding-inline:13px}.main{padding-top:20px}.hero-card{padding:24px}.hero-card .hero-top{flex-direction:column}.hero-card .remaining{position:absolute;top:0;right:0}.hero-card .eyebrow{max-width:180px}.hero-card .hero-number strong{font-size:54px}.recent-section .recent-grid{flex-direction:column;display:flex}.mini-card{min-height:146px;padding:18px}.mini-card strong{font-size:24px}.workspace{padding-inline:14px}.workspace .workspace-head{flex-direction:column;align-items:stretch}.workspace .segmented{align-self:stretch}.workspace .segmented button{flex:1;justify-content:center;padding-inline:8px}.workspace .days button{min-height:91px;padding:7px}.workspace .days button .shift-pill span{display:none}.workspace .days button .shift-pill b{font-size:11px;display:block}.workspace .chart-head{flex-direction:column}.workspace .chart-filters{width:100%}.workspace .chart-filters label{flex:1}.workspace .chart-filters select{width:100%;min-width:0}.modal-backdrop{padding:max(8px, env(safe-area-inset-top)) 0 0;place-items:end center}.modal-backdrop .modal{width:100%;max-height:calc(100dvh - max(8px, env(safe-area-inset-top)));border-radius:24px 24px 0 0}.modal-backdrop .modal .modal-head{z-index:3;padding:16px 20px;position:sticky;top:0}.modal-backdrop .modal .modal-head .modal-icon{border-radius:11px;width:34px;height:34px}.modal-backdrop .modal .modal-head h2{margin-top:10px;font-size:20px}.modal-backdrop .modal .modal-head p{font-size:12px}.modal-backdrop .modal .modal-head .close{top:14px;right:14px}.modal-backdrop .modal .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px 12px;padding:18px 16px 8px}.modal-backdrop .modal .form-grid label{min-width:0;font-size:13px}.modal-backdrop .modal .form-grid .full{grid-column:1/-1}.modal-backdrop .modal .form-grid input,.modal-backdrop .modal .form-grid textarea{min-width:0;margin-top:5px;padding:10px;font-size:16px}.modal-backdrop .modal .form-grid textarea{min-height:64px}.modal-backdrop .modal .form-grid .calculation{grid-template-columns:1fr 1fr;padding:14px}.modal-backdrop .modal .form-grid .calculation small{font-size:11px}.modal-backdrop .modal .form-grid .calculation strong{font-size:17px}.modal-backdrop .modal .form-grid .calculation p{grid-column:1/-1;gap:10px;margin-top:11px;padding-top:11px;font-size:11px}.modal-backdrop .modal .form-grid .form-warning{padding:10px 12px;font-size:12px}.modal-backdrop .modal .modal-actions{z-index:3;padding:10px 16px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #e2ebe7;grid-template-columns:auto 1fr 1fr;gap:8px;display:grid;position:sticky;bottom:0}.modal-backdrop .modal .modal-actions .button{min-width:0;padding-inline:12px}.modal-backdrop .modal .modal-actions .delete{width:auto;margin:0;padding-inline:10px}}
