:root{--ink:#252a36;--muted:#727886;--line:#e9ebef;--purple:#6557da;--surface:#fff;--canvas:#f7f8fa;--radius:12px}*{box-sizing:border-box}body{color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #6557da}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}svg{stroke-width:1.7px;flex-shrink:0}button{transition:background-color .15s,color .15s}button:hover{background-color:#f0eff9}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex-shrink:0;width:246px;padding:31px 23px 22px;display:flex;position:fixed;inset:0 auto 0 0;overflow:auto}.brand{letter-spacing:-1.1px;align-items:center;gap:10px;font-size:26px;font-weight:730;display:flex}.brand-icon{background:var(--purple);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 3px 7px #6557da24}.brand-dot{color:var(--purple);margin-left:-9px}.workspace-label{align-items:center;gap:10px;margin:31px 0 28px;font-size:12px;font-weight:600;display:flex}.avatar{color:#625a92;background:#eeedf7;border:1px solid #e2dff2;border-radius:9px;place-items:center;width:34px;height:34px;font-size:12px;display:grid}.workspace-label small{color:var(--muted);margin-top:1px;font-size:11px;font-weight:400;display:block}.sidebar nav{flex-direction:column;gap:5px;display:flex}.nav-item{text-align:left;color:#646b78;white-space:nowrap;border-radius:7px;align-items:center;gap:12px;min-height:42px;padding:10px 12px;font-size:13px;display:flex}.nav-item.active{color:#6557ce;background:#f0edfc;font-weight:600}.nav-indicator{background:currentColor;border-radius:50%;width:5px;height:5px;margin-left:auto}.end-icon{opacity:.6;margin-left:auto}.mini-calendar{border-top:1px solid var(--line);margin-top:34px;padding-top:23px}.mini-title{justify-content:space-between;align-items:center;margin-bottom:17px;font-size:12px;display:flex}.mini-title>div{display:flex}.small-icon{border-radius:5px;place-items:center;width:26px;height:28px;display:inline-grid}.mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px 0;display:grid}.mini-day{color:#89909a;margin-bottom:5px;font-size:10px}.mini-grid button{border-radius:50%;width:27px;height:27px;margin:auto;padding:0;font-size:11px}.mini-grid .outside{color:#b3b7c0}.mini-grid .today{color:#6557da;font-weight:700}.mini-grid .selected{background:var(--purple);color:#fff;box-shadow:0 2px 5px #6557da30}.tag-sidebar{margin-top:28px}.section-label{letter-spacing:1.15px;color:#818792;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:10px;font-weight:600;display:flex}.tag-filter{text-align:left;overflow-wrap:anywhere;border-radius:6px;align-items:center;gap:10px;width:100%;min-height:36px;padding:9px 10px;font-size:12px;display:flex}.tag-filter.chosen{background:#f5f5f8;font-weight:600}.tag-filter small{color:#8a8f99;margin-left:auto;font-weight:400}.tag-filter svg{margin-left:auto}.color-dot{border-radius:3px;flex-shrink:0;width:8px;height:8px;display:inline-block}.all-dot{border:1.5px solid #89909c;border-radius:3px;width:8px;height:8px}.create-tag-link{color:var(--purple);padding:8px;font-size:12px}.sidebar-bottom{margin-top:auto;padding-top:36px}.little-sun{color:#a096c8;background:#f5f2fa;border-radius:9px;place-items:center;width:33px;height:33px;margin-bottom:12px;display:grid}.sidebar-bottom strong{font-size:12px;font-weight:600}.sidebar-bottom p{color:#868b96;margin-top:5px;font-size:11px;line-height:1.8}.local-label{color:#8a8e99;overflow-wrap:anywhere;align-items:flex-start;gap:6px;margin-top:24px;font-size:9px;display:flex}.local-label>span{background:#76a390;border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:5px}main{width:calc(100% - 246px);min-width:0;margin-left:246px}.topbar{border-bottom:1px solid var(--line);background:#ffffffa8;align-items:center;gap:16px;height:70px;padding:0 38px;display:flex}.breadcrumb{color:#9296a0;font-size:12px}.breadcrumb span{color:#c6c8d0;margin:0 12px}.breadcrumb strong{color:#646b78;font-weight:500}.topbar-note{color:#7d838e;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:flex}.topbar-note>span{background:#9c92cd;border-radius:50%;width:5px;height:5px}.profile{color:#796ba3;background:#eeeaf7;border:3px solid #fff;border-radius:50%;place-items:center;width:30px;height:30px;margin-left:8px;font-size:11px;display:grid;box-shadow:0 0 0 1px #e9e6ee}.main-content{max-width:1800px;margin:auto;padding:35px 38px 20px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.eyebrow{letter-spacing:1.7px;color:#9193a3;margin-bottom:9px;font-size:9px;font-weight:650}.page-heading h1{letter-spacing:-1px;font-size:30px;font-weight:630;line-height:1.2}.page-heading p{color:#8b8f9b;margin-top:9px;font-size:12px}.primary-button,.secondary-button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 14px;font-size:12px;font-weight:550;display:inline-flex}.primary-button{background:var(--purple);color:#fff;box-shadow:0 2px 4px #5244b223,inset 0 1px #ffffff20}.primary-button:hover{background:#584ac8}.secondary-button{background:#fff;box-shadow:0 0 0 1px #e4e6ec,0 1px 3px #20253506}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:26px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:10px;padding:17px 20px}.stat-label{color:#858b97;justify-content:space-between;align-items:center;font-size:11px;display:flex}.stat-label svg{color:#aab}.stat-value{letter-spacing:-1px;font-variant-numeric:tabular-nums;align-items:baseline;gap:11px;margin:9px 0 12px;font-size:27px;font-weight:620;line-height:1.4;display:flex}.stat-value>span{letter-spacing:0;color:#979ca7;font-size:10px;font-weight:400}.stat-track{background:#f1f0f7;border-radius:2px;height:3px;overflow:hidden}.stat-track>span{background:#b1a6e7;border-radius:2px;height:100%;display:block}.stat:nth-child(2) .stat-track>span{background:#89b3a7}.stat:nth-child(3) .stat-track>span{background:#ddbb93}.calendar-card,.report-card{background:#fff;border:1px solid #e3e5eb;border-radius:12px;overflow:hidden;box-shadow:0 2px 5px #282e3b03}.calendar-toolbar{justify-content:space-between;align-items:center;gap:14px;padding:17px 20px;display:flex}.date-nav{align-items:center;gap:5px;display:flex}.date-nav .secondary-button{min-height:32px;margin-right:9px;padding:5px 13px}.icon-button{border-radius:6px;place-items:center;min-width:30px;min-height:32px;padding:5px;display:inline-grid}.date-nav h2{letter-spacing:-.3px;margin-left:10px;font-size:15px;font-weight:600}.date-nav h2>span{color:#a3a6b0;margin-left:8px;font-size:12px;font-weight:400}.view-switch{background:#f6f6f9;border:1px solid #ededf2;border-radius:7px;flex-shrink:0;gap:2px;padding:3px;display:flex}.view-switch button{color:#8a8c99;border-radius:4px;min-height:27px;padding:4px 11px;font-size:11px}.view-switch button.selected{color:#4e4c62;background:#fff;font-weight:600;box-shadow:0 1px 4px #252b4210}.calendar-subbar{border-top:1px solid #f2f2f6;border-bottom:1px solid var(--line);color:#979ca8;justify-content:space-between;align-items:center;gap:10px;padding:9px 22px;font-size:10px;display:flex}.calendar-subbar>span{align-items:center;gap:7px;display:flex}.status-dot{background:#a5a0b4;border-radius:50%;width:5px;height:5px}.subbar-divider{background:#e4e5ec;width:1px;height:10px;margin:0 5px}.drag-hint{gap:6px!important}.calendar-scroll{scrollbar-color:#d9dbe5 transparent;scrollbar-width:thin;height:calc(100vh - 437px);min-height:380px;max-height:850px;overflow:auto}.calendar-inner{min-width:550px}.calendar-day-head{grid-template-columns:64px repeat(var(--days), minmax(0, 1fr));z-index:5;border-bottom:1px solid var(--line);background:#fff;height:84px;display:grid;position:sticky;top:0}.timezone-label{color:#a0a4b0;border-right:1px solid var(--line);justify-content:center;align-items:flex-end;padding-bottom:14px;font-size:9px;display:flex}.day-head{text-align:center;border-right:1px solid #f0f1f5;flex-direction:column;align-items:center;gap:0;padding:9px 2px 6px;display:flex}.day-head>span{text-transform:uppercase;letter-spacing:1px;color:#8d94a0;font-size:9px}.day-head>strong{border-radius:50%;width:35px;height:35px;margin-top:2px;font-size:20px;font-weight:500;line-height:1.8}.day-head>small{color:#a2a8b2;font-variant-numeric:tabular-nums;margin-top:2px;font-size:9px}.day-head.is-today>span{color:var(--purple);font-weight:600}.day-head.is-today>strong{background:var(--purple);color:#fff;font-size:18px}.calendar-body{grid-template-columns:64px repeat(var(--days), minmax(0, 1fr));display:grid}.time-labels>div{text-align:center;height:64px;position:relative}.time-labels span{color:#979ea9;white-space:nowrap;background:#fff;padding:0 4px;font-size:9px;position:relative;top:-8px}.time-labels>div:first-child span{top:3px}.day-column{border-left:1px solid var(--line);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:crosshair;background:repeating-linear-gradient(#0000 0 31px,#f5f6f9 31px 32px,#0000 32px 63px,#e9ebf1 63px 64px);height:1536px;position:relative}.hour-line{pointer-events:none;height:64px}.event{z-index:2;background:color-mix(in srgb, var(--event-color) 10%, white);border:1px solid color-mix(in srgb, var(--event-color) 20%, white);border-left:3px solid var(--event-color);text-align:left;color:#303343;cursor:pointer;border-radius:5px;flex-direction:column;gap:2px;padding:7px 8px;display:flex;position:absolute;overflow:hidden}.event:hover{background:color-mix(in srgb, var(--event-color) 17%, white);z-index:3}.event strong{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:11px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.event>span{opacity:.75;white-space:nowrap;font-size:9px}.event>small{opacity:.75;white-space:nowrap;align-items:center;gap:5px;margin-top:auto;font-size:9px;display:flex}.event .color-dot{border-radius:50%;width:5px;height:5px}.event.compact{gap:0;padding:3px 6px}.event.compact>small{display:none}.selection{border:1px dashed var(--purple);z-index:4;color:var(--purple);pointer-events:none;background:#6557da20;border-radius:5px;padding:5px;font-size:10px;position:absolute;left:4px;right:4px}.now-line{z-index:3;pointer-events:none;border-top:1px solid #da6e71;position:absolute;left:0;right:0}.now-line>span{background:#da6e71;border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;left:-3px}.calendar-footer{color:#959baa;border-top:1px solid var(--line);background:#fefeff;justify-content:space-between;gap:12px;padding:12px 19px;font-size:9px;display:flex}.calendar-footer>span{align-items:center;gap:7px;display:flex}.keyboard-key{text-align:center;color:#858b9a;border:1px solid #e3e5ec;border-radius:3px;min-width:16px;line-height:15px}.empty-strip{color:#7c7792;background:#faf9ff;border-top:1px solid #eeebfa;align-items:center;gap:10px;padding:12px 20px;font-size:11px;display:flex}.page-footer{color:#a1a5b0;justify-content:space-between;gap:15px;padding-top:22px;font-size:10px;display:flex}.page-footer>span:last-child{letter-spacing:1.1px;font-size:8px}.footer-dot{color:#bcb8cf;margin:0 6px;font-size:5px}.notice{color:#277963;background:#f2faf7;border:1px solid #d8ebe4;border-radius:7px;justify-content:space-between;margin-bottom:16px;padding:10px 14px;font-size:12px;display:flex}.error{color:#a23d47;background:#fff1f2;border:1px solid #f2d8da;border-radius:7px;justify-content:space-between;gap:10px;margin-bottom:16px;padding:11px 14px;font-size:12px;display:flex}.error button{text-decoration:underline}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:99;background:#fff;padding:10px;position:fixed;top:10px;left:10px;transform:translateY(-200%)}.skip-link:focus{transform:none}dialog{width:min(530px,100% - 32px);max-height:90vh;color:var(--ink);overscroll-behavior:contain;border:1px solid #e8e6f0;border-radius:16px;padding:26px;overflow:auto;box-shadow:0 20px 100px #22243830}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#25253655}.modal-heading{justify-content:space-between;align-items:center;margin-bottom:23px;display:flex}.modal-heading h2{letter-spacing:-.7px;font-size:23px;font-weight:600}.modal-heading .eyebrow{margin-bottom:7px;font-size:8px;display:block}form label,.report-toolbar>label{flex-direction:column;gap:7px;margin-bottom:18px;font-size:12px;font-weight:500;display:flex}input,select,textarea{color:#343747;background:#fff;border:1px solid #dedfe7;border-radius:7px;width:100%;min-height:39px;padding:9px 11px;font-size:13px}input::placeholder,textarea::placeholder{color:#a1a5b0}textarea{resize:vertical;line-height:1.5}.form-columns{grid-template-columns:1fr 1fr;gap:14px;display:grid}.duration-preview{color:#796ca4;background:#f9f8fd;border:1px solid #ebe8f7;border-radius:7px;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}.duration-preview>span{color:#9890aa;margin-left:auto;font-size:10px}.modal-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:22px;display:flex}.danger-button{color:#b64e5c;align-items:center;gap:6px;min-height:36px;margin-right:auto;padding:6px;font-size:12px;display:flex}.form-error{color:#a0394b;padding-top:14px;font-size:12px}.field-help{color:#7b768d;font-size:12px}.text-button{color:var(--purple);padding:6px;font-size:12px}.modal-description{color:#9396a2;margin:-10px 0 20px;font-size:12px}.managed-tags{max-height:240px;overflow:auto}.managed-tag{border-bottom:1px solid #eff0f4;align-items:center;gap:10px;padding:8px 0;display:flex}.managed-tag strong{overflow-wrap:anywhere;font-size:13px;font-weight:500}.managed-tag code{color:#a0a4af;margin-left:auto;font-size:10px}.managed-tag .icon-button{min-width:28px}.tag-form{padding-top:22px}.tag-form h3{margin-bottom:15px;font-size:13px;font-weight:600}.tag-fields{grid-template-columns:1fr 58px;gap:15px;display:grid}.tag-fields input[type=color]{cursor:pointer;height:39px;padding:4px}.palette{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.palette button{color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.palette .picked{outline-offset:3px;outline:2px solid #b9b1d1}.hex-label{flex:1;min-width:90px;margin:0!important}.hex-label input{min-height:30px;padding:5px 9px;font-family:monospace;font-size:11px}.report-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:14px;padding:22px;display:flex}.report-toolbar>label{flex:1;min-width:125px;margin:0}.report-toolbar .search-field{flex-direction:row;flex:2;align-items:center;min-width:210px;font-size:12px;position:relative}.search-field svg{color:#9398a4;position:absolute;left:11px}.search-field input{padding-left:36px}.report-summary{justify-content:space-between;align-items:center;padding:25px 24px;display:flex}.report-summary h2{letter-spacing:-.8px;font-variant-numeric:tabular-nums;font-size:30px;font-weight:600}.report-summary h2 small{letter-spacing:0;color:#9ba0ab;margin-left:15px;font-size:11px;font-weight:400}.report-breakdown{padding:0 24px 20px}.breakdown-row{align-items:center;gap:18px;margin-bottom:13px;font-size:11px;display:flex}.breakdown-row>span{color:#858c99;flex-shrink:0;width:105px}.breakdown-row strong{text-align:right;width:50px;font-size:11px;font-weight:500}.breakdown-track{background:#f6f5fa;border-radius:3px;flex:1;height:10px;display:flex;overflow:hidden}.breakdown-track>span{min-width:2px}.report-list{border-top:1px solid var(--line);padding:10px 24px 20px}.list-heading{justify-content:space-between;align-items:center;padding:10px 0;display:flex}.list-heading h3{font-size:13px;font-weight:600}.entry-row{text-align:left;border-top:1px solid #eff0f4;align-items:center;gap:13px;width:100%;padding:15px 0;display:flex}.entry-color{border-radius:3px;flex-shrink:0;width:4px;height:30px}.entry-row>div{flex:1;min-width:0}.entry-row>div strong{overflow-wrap:anywhere;font-size:12px;font-weight:550;display:block}.entry-row>div>span{color:#969ca7;margin-top:4px;font-size:10px;display:block}.entry-tag{color:#7b8190;overflow-wrap:anywhere;background:#f5f5f8;border-radius:4px;max-width:130px;padding:3px 7px;font-size:10px}.entry-row>strong{white-space:nowrap;font-size:12px;font-weight:600}.entry-row>svg{color:#adb2bd}.report-empty{text-align:center;color:#a1a4b0;padding:40px}.report-empty svg{margin-bottom:14px}.report-empty h3{color:#626978;font-size:14px}.report-empty p{margin-top:7px;font-size:12px}@media (prefers-reduced-motion:no-preference){button:active:not(:disabled){scale:.96}}@media (min-width:1600px){.sidebar{width:265px;padding-inline:28px}main{width:calc(100% - 265px);margin-left:265px}.main-content{padding-inline:50px}.calendar-scroll{min-height:530px}}@media (max-width:1150px){.sidebar{width:215px;padding-inline:17px}main{width:calc(100% - 215px);margin-left:215px}.main-content{padding:28px 24px 18px}.topbar{padding-inline:24px}.calendar-toolbar{flex-wrap:wrap}.drag-hint{display:none!important}.calendar-scroll{height:480px}.date-nav h2{font-size:13px}.stats{gap:12px}.stat{padding:14px}.stat-value>span{font-size:9px}}@media (max-width:800px){.sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;padding:14px 20px;position:static;overflow:visible}.app-shell{display:block}.brand{font-size:22px}.brand-icon{width:29px;height:29px}.sidebar nav{flex-flow:wrap;gap:6px;margin-top:17px}.nav-item{gap:7px;min-height:38px;padding:7px 10px;font-size:12px}.workspace-label,.mini-calendar,.tag-sidebar,.sidebar-bottom,.nav-indicator,.end-icon{display:none}main{width:100%;margin:0}.topbar{height:48px;padding-inline:20px}.main-content{padding:25px 20px}.page-heading h1{font-size:25px}.page-heading p{max-width:230px}.page-heading{gap:12px}.stats{gap:9px}.stat{padding:12px 10px}.stat-value{font-size:24px;display:block}.stat-value>span{margin-top:2px;font-size:9px;display:block}.stat-label{font-size:10px}.stat-label svg{display:none}.calendar-day-head,.calendar-body{grid-template-columns:48px repeat(var(--days), minmax(0, 1fr))}.calendar-scroll{height:520px;min-height:350px}.calendar-inner{min-width:480px}.calendar-inner:has(.calendar-day-head>.day-head:last-child:nth-child(2)){min-width:0}.calendar-toolbar{gap:14px;padding:14px}.date-nav{flex-wrap:wrap;gap:0}.date-nav h2{margin-left:6px}.date-nav h2 span{font-size:10px}.calendar-footer{padding:10px 13px}.calendar-footer>span:last-child{display:none}.page-footer{font-size:9px}.page-footer>span:last-child{display:none}.report-toolbar{padding:16px}.report-summary{flex-wrap:wrap;gap:10px;padding:20px 16px}.report-breakdown,.report-list{padding-inline:16px}.entry-tag{display:none}.form-columns{grid-template-columns:1fr}.duration-preview{flex-wrap:wrap}.duration-preview>span{margin-left:0}.topbar-note{font-size:10px}input,textarea,select{font-size:16px}.report-toolbar>label{min-width:110px}.palette{gap:9px}dialog{padding:22px}.managed-tag{gap:7px}.managed-tag code{font-size:9px}.empty-strip{font-size:10px}.notice{font-size:11px}.calendar-day-head{height:80px}}.stat-foot{color:#a0a4ae;align-items:center;gap:6px;font-size:9px;display:flex}.stat-foot>span{background:#b1a6e7;border-radius:50%;width:5px;height:5px}.stat:nth-child(2) .stat-foot>span{background:#89b3a7}.stat:nth-child(3) .stat-foot>span{background:#ddbb93}.login-shell{background:radial-gradient(ellipse at 50% 30%, #eeebfb 0, transparent 60%), var(--canvas);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #e8e5f1;border-radius:18px;width:min(420px,100%);margin:0;padding:36px;box-shadow:0 12px 60px #5345840a}.login-card .brand{margin-bottom:40px}.login-lock{width:47px;height:47px;color:var(--purple);background:#f2effc;border-radius:13px;place-items:center;margin-bottom:20px;display:grid}.login-card h1{letter-spacing:-1px;font-size:29px;font-weight:620}.login-card>p{color:#858a98;margin:10px 0 27px;font-size:12px}.login-card .primary-button{justify-content:space-between;width:100%;min-height:42px;margin-top:5px;padding-inline:15px}.login-card .form-error{margin-bottom:15px;padding-top:0}.login-note{color:#989ca8;justify-content:center;align-items:center;gap:6px;margin-top:28px;font-size:10px;display:flex}@media (max-width:800px){.login-card{padding:28px}.login-shell{padding:18px}}
