@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#152137;--ink2:#45546b;--muted:#7b8aa0;--bg:#f5f7fa;--line:#e6eaf0;--mint:#d8f2e7;--green:#257e5c;--greenlight:#ecf8f2;--nav:#101b2e;--white:#fff;font-family:'DM Sans',Inter,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'Segoe UI',Arial,sans-serif}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #6cc9a2;outline-offset:2px}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:16px;color:#506075}.loading-ring{display:inline-block;width:22px;height:22px;border:3px solid #d7e9de;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:var(--nav);color:#fff;min-height:100vh;padding:31px 18px 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin:3px 10px 63px}.brand-mark{display:grid;place-items:center;background:#b5e5d3;color:#14543d;width:39px;height:39px;border-radius:13px;font-size:26px;font-weight:800}.brand strong{display:block;font:800 13px/1.35 Manrope,sans-serif;letter-spacing:.12em}.brand small{color:#91a3b7;display:block;font-size:10px;margin-top:4px}.sidebar-eyebrow{color:#667e99;font-weight:800;letter-spacing:.15em;margin:0 14px 14px;font-size:10px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{width:100%;display:flex;align-items:center;gap:14px;border:0;background:transparent;color:#abb9c9;border-radius:11px;padding:13px 16px;font-size:14px;font-weight:700;text-align:left}.nav-item>span:first-child{font-size:20px;width:22px;text-align:center;font-family:Arial,sans-serif}.nav-item:hover{background:#1c2b40}.nav-item.active{background:#243a4e;color:#d9f9e9}.sidebar-bottom{margin-top:auto}.side-note{background:#1a2b40;border:1px solid #29435a;border-radius:15px;padding:17px 16px 19px;color:#eef4f8;display:flex;flex-direction:column;gap:10px}.side-note-icon{font-size:25px;color:#b5e5d3}.side-note strong{font-size:13px}.side-note small{line-height:1.6;color:#a7bbcf;font-size:12px}.demo-side{color:#b4dcce;font-size:11px;padding:13px 5px;line-height:1.8;letter-spacing:.03em}.demo-side small{font-size:11px;color:#7f96ac}.logout{background:none;color:#a8bdd1;border:0;padding:18px 9px;font-size:13px;text-align:left}
.workspace{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 44px}.top-sub{font-size:11px;letter-spacing:.09em;font-weight:800;color:#697990}.top-sub span{color:#bac4ce;margin:0 7px}.top-right{display:flex;gap:9px;align-items:center;font-size:12px;color:#68788d;font-weight:700}.live-dot{background:#45b58b;width:7px;height:7px;border-radius:100%;box-shadow:0 0 0 4px #e9f8f0}.avatar{margin-left:12px;background:#e2ecee;color:#48677b;display:grid;place-items:center;width:36px;height:36px;font-size:11px;border-radius:50%;font-weight:900}.content{max-width:1370px;margin:0 auto;padding:42px 44px 70px}.demo-banner{background:#fff6db;border-bottom:1px solid #e7dfc2;color:#725a22;font-size:12px;padding:12px 44px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:31px}.eyebrow{font-size:10px;font-weight:900;color:#399476;letter-spacing:.18em;margin-bottom:11px}.page-heading h1{font-size:clamp(27px,2.7vw,39px);font-weight:800;letter-spacing:-.06em;line-height:1.2;margin-bottom:12px}.page-heading p{color:#77869a;font-size:13px;margin:0;line-height:1.7}.page-heading p strong{color:#3a5065;font-weight:800}.wave{font-size:20px;color:#61af96;margin-left:3px}.btn{border:0;border-radius:11px;padding:13px 19px;font-weight:800;font-size:12px;letter-spacing:.01em;display:inline-flex;gap:6px;align-items:center;justify-content:center;min-height:44px;text-decoration:none;white-space:nowrap}.btn.primary{background:#257b59;color:#fff;box-shadow:0 5px 12px #21785b16}.btn.primary:hover{background:#166545}.btn.dark{background:#19263b;color:white}.btn.outline{border:1px solid #d8e0e7;background:#fff;color:#3c5169}.btn.full{width:100%}.metrics-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:17px;margin-bottom:37px}.metric-card{border-radius:15px;padding:24px 25px;background:#fff;border:1px solid #e7ecf1;min-height:157px;box-shadow:0 6px 21px #1a354205}.metric-card.featured{background:#e7f6ee;border:1px solid #d6ebdd}.metric-label{font-size:10px;font-weight:900;color:#6b7c8e;letter-spacing:.13em}.featured .metric-label{color:#4f8d6c}.metric-value{font-family:Manrope,sans-serif;font-size:38px;font-weight:900;letter-spacing:-.08em;margin:11px 0 4px;line-height:1.1}.metric-value span{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;letter-spacing:0;color:#778a99}.featured .metric-value{color:#226d4e}.metric-foot{font-size:11px;color:#8c97a4}.metric-meter{height:5px;background:#cce2d5;border-radius:8px;overflow:hidden;margin-top:16px}.metric-meter i{background:#359b70;display:block;height:100%;border-radius:8px;transition:width .2s}.section-header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 15px}.section-header h2{font-size:17px;letter-spacing:-.03em;font-weight:900;margin:0 0 8px}.section-header p{color:#8290a2;font-size:12px;margin:0}.date-controls{display:flex;align-items:center;border:1px solid #e2e8ee;border-radius:9px;background:white;gap:6px;white-space:nowrap;font-size:12px;color:#516276;font-weight:700}.date-controls button{background:transparent;border:0;padding:6px 13px;font-size:21px;color:#627e7b}.date-controls span{padding:0 4px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:17px;align-items:start}.panel{background:#fff;border:1px solid #e4eaf0;border-radius:15px;box-shadow:0 5px 22px #133b5804}.list-panel{overflow:hidden}.habit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 18px;border-bottom:1px solid #edf0f4;min-height:81px}.habit-row:last-child{border-bottom:0}.habit-main{display:flex;align-items:center;gap:16px;min-width:0}.habit-time{background:#eef4f6;color:#668092;padding:8px 8px;border-radius:8px;font-size:11px;font-weight:900;width:54px;text-align:center;flex-shrink:0}.habit-text{min-width:0}.habit-text strong{font-size:12px;display:block;margin-bottom:6px;line-height:1.35}.habit-text small{display:block;color:#8593a3;font-size:11px;line-height:1.35}.status-buttons{display:flex;gap:5px;flex-shrink:0}.status-buttons button{border:1px solid #e3e9ed;background:#fbfcfd;color:#b4c0cb;border-radius:7px;width:31px;height:31px;font-size:17px;font-weight:900}.status-buttons .done.selected{background:#d8f5e7;color:#228059;border-color:#acdcbc}.status-buttons .missed.selected{background:#fff0e9;color:#c66f4c;border-color:#efc1b1}.status-buttons .excused.selected{background:#eaf0f7;color:#62768c;border-color:#c7d1de}.reflection-panel{padding:23px}.panel-heading{display:flex;align-items:center;gap:13px;margin-bottom:25px}.mini-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#e6f4ec;color:#3c9270;font-size:18px}.panel-heading h3{font-size:14px;font-weight:900;margin:0 0 5px}.panel-heading small{color:#97a1ac;font-size:11px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.reflection-panel label,.modal label,.login-panel label{display:block;font-size:11px;color:#647488;font-weight:800;margin-bottom:15px}.reflection-panel input,.reflection-panel select,.reflection-panel textarea,.modal input:not([type=checkbox]),.modal select,.login-panel input{display:block;width:100%;padding:11px 12px;border:1px solid #e0e7ed;border-radius:8px;margin-top:7px;background:#fff;color:#283851;outline-offset:2px;font-size:12px}.reflection-panel textarea{resize:vertical;line-height:1.6}.full-label{margin-top:4px}.bottom-note{margin-top:19px;color:#97a3af;font-size:11px}
.print-intro{background:#e7f6ee;border:1px solid #dbece1;border-radius:18px;padding:33px 34px;display:flex;align-items:center;gap:31px;margin-bottom:34px}.print-illustration{height:115px;width:120px;border-radius:17px;display:grid;place-items:center;background:#cae9d9;color:#288362;font-size:63px;flex-shrink:0}.print-intro h2{font-size:24px;letter-spacing:-.06em;margin-bottom:9px}.print-intro p{color:#648078;font-size:12px;max-width:510px;line-height:1.6}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.paper-preview{background:#fff;border:1px solid #e4e9ef;border-radius:12px;padding:30px 40px;box-shadow:0 6px 28px #111f2910}.paper-head{display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid #22364e;padding-bottom:18px;margin-bottom:12px}.mini-brand{font-size:10px;color:#288460;letter-spacing:.1em;font-weight:900}.paper-head h2{font-size:23px;letter-spacing:-.05em;margin:9px 0 5px}.paper-head p{font-size:12px;color:#728094;margin:0}.print-tag{border:1px solid #dce7e0;color:#408f6b;border-radius:6px;font-size:10px;padding:7px 10px;font-weight:800}.paper-row{display:grid;grid-template-columns:33px 60px 1fr 35px;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f3}.paper-number{font-size:11px;color:#a6afb9;font-weight:800}.paper-time{font-weight:900;font-size:11px;color:#5e7484}.paper-row strong{font-size:12px;display:block;margin-bottom:4px}.paper-row small{display:block;font-size:11px;color:#8b98a5}.paper-checkbox{font-size:26px;color:#8c9ba8}.paper-footer{margin-top:22px;color:#8996a2;font-size:11px}
.routine-panel{overflow:hidden}.routine-heading,.routine-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(140px,.7fr) 154px;align-items:center;gap:18px;padding:18px 22px}.routine-heading{background:#f9fafc;color:#93a0ad;font-size:10px;font-weight:900;letter-spacing:.1em;border-bottom:1px solid #ecf0f3}.routine-row{border-bottom:1px solid #edf0f3}.routine-row:last-child{border-bottom:0}.routine-info{display:flex;align-items:center;gap:14px}.category-icon{background:#ecf4f0;color:#247d5b;border-radius:11px;width:41px;height:41px;display:grid;place-items:center;flex-shrink:0;font-size:19px}.routine-info strong{display:block;font-size:13px;margin-bottom:4px}.routine-info small{display:block;font-size:11px;color:#8291a0;line-height:1.4;margin-bottom:5px}.cat-label{display:inline-block;color:#48856e;font-size:10px;font-weight:800}.routine-days strong{font-size:12px;display:block;margin-bottom:9px}.day-chip{display:inline-grid;place-items:center;width:18px;height:19px;border-radius:5px;margin-right:2px;font-size:9px;background:#f0f3f6;color:#b0bac4}.day-chip.on{background:#dff1e8;color:#288361;font-weight:800}.routine-actions{display:flex;gap:7px}.routine-actions button,.archived button{border:1px solid #dbe6e9;background:white;border-radius:8px;padding:8px 11px;font-weight:800;color:#3e7965;font-size:11px}.routine-actions .archive{color:#ad6a66}.tip{padding:23px;margin-top:23px;font-size:12px;color:#728395;line-height:1.8}.tip strong{color:#355f51}.archived{margin-top:24px}.archived h3{font-size:14px}.archived>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6eaf0;padding:10px 4px;font-size:12px}.empty{padding:34px;color:#8997a4;text-align:center;font-size:13px;line-height:1.8}
.chart-panel{padding:25px;margin-bottom:18px}.bar-chart{display:flex;gap:7px;justify-content:space-between;align-items:end;height:190px;padding-top:8px;border-bottom:1px solid #e7ecef}.bar-item{display:flex;flex-direction:column;align-items:center;justify-content:end;gap:8px;flex:1;height:100%;min-width:0}.bar-track{height:140px;width:min(100%,18px);background:#eaf0ed;border-radius:5px 5px 0 0;display:flex;align-items:end;overflow:hidden}.bar-fill{width:100%;background:#6abe93;border-radius:5px 5px 0 0;min-height:0}.bar-item small{color:#a4b0bd;font-size:9px}.chart-caption{font-size:11px;line-height:1.7;color:#8795a4;margin:17px 0 0}.stats-panel{padding:22px 25px}.stats-panel h3{font-size:15px;margin:3px 0 23px}.stat-habit{margin-bottom:17px}.stat-habit>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;margin-bottom:8px}.stat-habit span{color:#526378}.stat-habit strong{font-size:11px}.stat-track{height:6px;background:#e9f1ec;border-radius:10px}.stat-track i{background:#5cb28c;height:100%;display:block;border-radius:10px}.detail-line{display:flex;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid #edf0f3;font-size:12px}.detail-line span{color:#7c8b9b}.detail-line strong{color:#324557}
.modal-backdrop{position:fixed;inset:0;background:#0f1d31ad;z-index:40;display:grid;place-items:center;padding:20px;overflow-y:auto}.modal{width:min(560px,100%);background:white;border-radius:18px;box-shadow:0 30px 80px #091b323f;padding:26px;max-height:95vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.modal-head h2{margin:0;font-size:20px}.x-close{border:0;background:#eff3f6;font-size:24px;width:34px;height:34px;border-radius:9px;color:#637082}.modal fieldset{border:0;padding:0;margin:3px 0 22px}.modal legend{font-size:11px;font-weight:800;color:#647488;margin-bottom:12px}.weekday-choose{display:flex;flex-wrap:wrap;gap:9px}.weekday-label{margin:0!important;cursor:pointer}.weekday-label input{position:absolute;opacity:0;pointer-events:none}.weekday-label span{padding:8px 10px;border:1px solid #e1e8ed;border-radius:9px;display:inline-block;color:#7d8b99}.weekday-label input:checked+span{color:#237857;background:#e1f4e8;border-color:#abd8bf}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions .btn{min-width:130px}
.login-wrap{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh;background:#fff}.login-art{background:#101c2f;color:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:center}.login-logo{background:#c5ead8;color:#146d4b;border-radius:21px;display:grid;place-items:center;width:74px;height:74px;font-weight:900;font-size:45px;margin-bottom:45px}.login-overline{font-size:12px;color:#8ec1ab;letter-spacing:.18em;font-weight:900;margin-bottom:18px}.login-art h1{font-size:clamp(36px,5vw,66px);letter-spacing:-.08em;margin:0 0 18px}.login-art p{font-size:18px;line-height:1.7;color:#c1cfdb}.login-quote{margin-top:55px;border-left:3px solid #6ec49e;padding-left:18px;color:#9db4c9;font-size:13px}.login-panel{width:min(410px,85%);align-self:center;justify-self:center}.login-panel .lock{font-size:13px;font-weight:800;color:#247d5b;margin-bottom:30px}.login-panel h2{font-size:30px;letter-spacing:-.05em;margin:0 0 15px}.login-panel p{font-size:13px;color:#7a8a9a;line-height:1.8;margin-bottom:30px}.login-panel input{font-size:14px;padding:14px}.login-panel .btn{margin-top:10px}.login-foot{font-size:11px;color:#a1aab4;margin-top:20px;text-align:center}.alert{background:#fff2ef;color:#a75b45;border:1px solid #f1d7cf;padding:12px;margin-bottom:13px;border-radius:9px;font-size:12px;line-height:1.6}
#toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#1d7355;color:#fff;padding:14px 20px;border-radius:11px;font-size:12px;box-shadow:0 10px 40px #0c201c33;max-width:min(400px,90vw);opacity:0;transform:translateY(20px);pointer-events:none;transition:all .2s}#toast.show{opacity:1;transform:translateY(0)}#toast.error{background:#a94636}
.print-only{display:none}
@media(max-width:1120px){.shell{grid-template-columns:208px 1fr}.content{padding:30px 25px 60px}.topbar{padding:0 25px}.metrics-grid{gap:10px}.two-col{grid-template-columns:1fr}.metric-card{padding:19px}.routine-heading,.routine-row{grid-template-columns:minmax(0,1.3fr) 125px 135px;gap:10px;padding:16px}}
@media(max-width:700px){.shell{display:block}.sidebar{height:auto;min-height:0;position:sticky;z-index:5;top:0;padding:9px 10px 6px;box-shadow:0 4px 20px #0b193217}.brand{margin:1px 6px 9px}.brand-mark{width:29px;height:29px;border-radius:8px;font-size:20px}.brand strong{font-size:11px}.brand small,.sidebar-eyebrow,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:4px;justify-content:space-between}.nav-item{padding:8px 4px;flex:1;flex-direction:column;gap:3px;font-size:9px;border-radius:8px;text-align:center}.nav-item>span:first-child{font-size:17px}.topbar{height:51px;padding:0 16px}.top-sub{font-size:9px}.top-right{font-size:10px}.avatar{width:28px;height:28px;margin-left:4px}.content{padding:24px 15px 65px}.page-heading{flex-direction:column;margin-bottom:24px}.page-heading h1{font-size:30px}.page-heading>.btn{align-self:stretch}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:30px}.metric-card{min-height:110px;padding:15px}.metric-card.featured{grid-column:span 2;min-height:137px}.metric-value{font-size:30px}.metric-value span{font-size:11px}.metric-foot{font-size:10px}.section-header{align-items:start;flex-direction:column;gap:12px}.date-controls{width:100%;justify-content:space-between}.habit-row{padding:15px 11px}.habit-main{gap:10px}.habit-time{width:44px;padding:7px 4px;font-size:10px}.habit-text strong{font-size:11px}.habit-text small{font-size:10px}.status-buttons{gap:3px}.status-buttons button{width:28px;height:28px}.reflection-panel{padding:18px}.field-grid{gap:9px}.print-intro{padding:22px;gap:14px;align-items:start}.print-illustration{width:58px;height:58px;font-size:30px}.print-intro h2{font-size:18px}.paper-preview{padding:18px 16px}.paper-row{grid-template-columns:22px 42px 1fr 25px;gap:6px}.paper-row small{font-size:10px}.paper-head h2{font-size:18px}.paper-head p{font-size:11px}.print-tag{display:none}.routine-heading{display:none}.routine-row{grid-template-columns:1fr;gap:13px}.routine-days{display:flex;align-items:center;gap:12px}.routine-days strong{margin:0}.routine-actions{justify-content:flex-end}.login-wrap{display:block}.login-art{padding:45px 27px}.login-logo{margin-bottom:20px;width:52px;height:52px;font-size:30px}.login-art h1{font-size:35px}.login-art p{font-size:14px}.login-quote{display:none}.login-panel{padding:38px 0 55px;width:84%}.modal{padding:19px}.weekday-label span{padding:8px}.bar-chart{gap:3px}.chart-panel{padding:16px}.bar-track{width:min(100%,13px)}}
@page{size:A4 portrait;margin:12mm}
@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important;font-family:Arial,sans-serif!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .shell,#toast,#modal-root{display:none!important}.print-only{display:block!important;position:static!important;width:100%!important;max-width:none!important;color:#111!important;font-size:10pt!important}
  .sheet-header{border-bottom:2px solid #22333f;margin-bottom:10px;padding-bottom:9px}.sheet-brand{font-weight:bold;font-size:10px;letter-spacing:.07em;color:#185a43}.sheet-brand span{color:#536270;font-weight:normal}.sheet-header h1{font:800 25pt Arial,sans-serif;margin:13px 0 3px;letter-spacing:-.03em}.sheet-date{font-size:13pt;font-weight:bold}.sheet-header p{margin:10px 0 0;font-size:9pt;color:#555}.sheet-instructions{padding:10px;background:#f0f3f4!important;border-radius:4px;color:#36464e;font-size:8.4pt;margin-bottom:9px}.sheet-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9pt}.sheet-table th{text-align:left;padding:9px 7px;background:#e8f1ec!important;color:#263a31;font-size:8.5pt;border:1px solid #bdc8c2}.sheet-table th:nth-child(1){width:13%}.sheet-table th:nth-child(2){width:39%}.sheet-table th:nth-child(3){width:36%}.sheet-table th:nth-child(4){width:12%;text-align:center}.sheet-table td{border:1px solid #d2d7da;padding:8px 7px;vertical-align:middle;line-height:1.4;height:40px;word-break:break-word}.sheet-table td:nth-child(1){font-weight:bold;white-space:nowrap}.sheet-table td:nth-child(4){text-align:center}.sheet-check{font:20pt Arial,sans-serif}.sheet-two{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;margin-top:15px;page-break-inside:avoid}.sheet-two h3{font:700 11pt Arial,sans-serif;border-bottom:1px solid #536476;padding-bottom:6px;margin:0 0 10px}.sheet-line{margin:0 0 13px;color:#34404b;font-size:9pt}.sheet-line span{color:#7b868d}.sheet-two p{margin:0 0 8px;font-size:9pt}.write-line{height:21px;border-bottom:1px solid #c3cbd1}.sheet-foot{font-size:8pt;color:#6c7881;border-top:1px solid #adb7bf;margin-top:18px;padding-top:7px;display:flex;justify-content:space-between;page-break-inside:avoid}
}
