
:root{--ink:#172b30;--muted:#687b7f;--line:#dce5e5;--paper:#f4f7f6;--accent:#f47712;--dark:#161a1c;--red:#bd3434}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}a:hover{color:#8d681c}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,3vw,38px);line-height:1.17;letter-spacing:-1.1px;margin:10px 0 12px;font-weight:750}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:16px}small{font-size:12px}button,.button{border:1px solid #c9d8d8;background:#fff;border-radius:8px;padding:10px 16px;font:inherit;font-weight:650;color:var(--ink);cursor:pointer;display:inline-block;line-height:1.3}button:hover,.button:hover{background:#edf2f1;color:var(--ink)}.primary{background:var(--dark);color:#fff;border-color:var(--dark)}.primary:hover{background:#22545b;color:#fff}.full{width:100%;margin-top:10px}.text-button{padding:4px 0;background:none;border:none;font-weight:500}.red{color:var(--red)}.muted{color:var(--muted)}.small{font-size:12px}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.6px;color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:var(--dark);color:#edf5f4;padding:30px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;margin-bottom:45px}.brand:hover{color:#fff}.crest{width:43px;height:49px;background:var(--accent);color:var(--dark);display:grid;place-items:center;border-radius:5px 5px 18px 18px;font-size:20px;font-weight:850}.brand small{display:block;font-size:8px;letter-spacing:1.4px;color:#a8bdbf;margin-top:4px}.nav-label{font-size:9px;letter-spacing:1.7px;color:#91aaad;margin:14px 10px 8px}.sidebar nav>a{display:block;padding:12px 11px;margin:4px 0;border-radius:7px;color:#bcd0d1;font-size:13px}.sidebar nav>a:hover,.sidebar nav>a.selected{background:#275057;color:white}.sidebar nav>a.selected{box-shadow:inset 3px 0 var(--accent)}.count{float:right;background:#3d6165;border-radius:20px;padding:0 6px;font-size:11px}.sidebar-bottom{margin-top:auto;border-top:1px solid #36565a;padding-top:20px}.sidebar-bottom small,.sidebar-bottom>a{display:block;color:#abc0c1;font-size:11px;margin:5px 0 12px}.sidebar-bottom button{color:#abc0c1}.workspace{margin-left:232px;padding:40px 42px;min-height:100vh;max-width:1800px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.page-header p{margin-bottom:0;max-width:700px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:34px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:36px;line-height:1.4;font-weight:700}.stat>small{display:block;color:var(--muted);font-size:10px}.stat-link{display:block;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.stat-link:hover{color:var(--ink);border-color:#b8cbca;box-shadow:0 4px 12px rgba(23,43,48,.08);transform:translateY(-1px)}.stat-link:focus-visible{outline:3px solid rgba(244,119,18,.45);outline-offset:3px}.stat.danger{border-color:#efcece;background:#fffafa}.stat.danger strong{color:var(--red)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.section-head h2,.section-head h3{margin:0}.section-head>a{font-size:12px;font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:18px;background:#eaf0ee;border-radius:10px;margin-bottom:24px}.filters label{min-width:140px;flex:1;margin:0;max-width:230px}.filters>a{padding:10px;font-size:12px}.filters button{margin-bottom:1px}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.task-card{display:block;padding:21px;background:#fff;border:1px solid var(--line);border-radius:11px;transition:box-shadow .15s}.task-card:hover{box-shadow:0 4px 20px #17373b10;color:var(--ink)}.task-card.overdue{background:#fff6f5;border-color:#eeb6b2;border-left:4px solid var(--red)}.card-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:18px}.tag{font-size:10px;font-weight:650;color:#5d7477;letter-spacing:.2px}.status{font-size:9px;font-weight:700;background:#eef2f1;padding:5px 8px;border-radius:5px;white-space:nowrap}.status-in-progress{background:#e4edf9;color:#416496}.status-waiting-for-approval{background:#fff0cd;color:#8e6820}.status-completed{background:#dff0e8;color:#357558}.status-changes-requested{background:#f6e4e4;color:#a94c4c}.task-card h3{margin-bottom:8px;line-height:1.35}.card-desc{font-size:12px;line-height:1.7;color:var(--muted);min-height:40px;margin-bottom:25px;overflow-wrap:anywhere}.card-bottom{display:flex;justify-content:space-between;gap:10px;font-size:11px;font-weight:600}.overdue .card-bottom>span:last-child{color:var(--red)}.task-dates{font-size:10px;color:var(--muted);border-top:1px solid var(--line);margin-top:13px;padding-top:10px}.task-dates span{display:block}.panel{background:#fff;padding:25px;border:1px solid var(--line);border-radius:12px;margin-bottom:22px}.narrow{max-width:850px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span-2{grid-column:1/-1}.field-note{align-self:center;background:#f3f6f4;border-radius:8px;padding:16px;font-size:12px;color:var(--muted)}label{display:block;font-size:12px;font-weight:650;margin-bottom:14px}label small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:6px}input,textarea,select{display:block;width:100%;padding:11px 12px;border:1px solid #cbd8d8;background:white;border-radius:7px;margin-top:7px;color:var(--ink);font:inherit;min-height:40px}textarea{resize:vertical}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid #78a5aa;outline-offset:2px}.form-grid>label{margin-bottom:0}.actions{display:flex;gap:12px;align-items:center}.notice{padding:15px 20px;border-radius:8px;background:#e1eee7;margin-bottom:20px;border:1px solid #c1ddcd}.notice.error{background:#fff0ef;border-color:#eecac7;color:#a53333}.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:24px}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;border-top:1px solid var(--line);padding-top:22px;margin-top:25px}.meta-grid small{display:block;font-size:9px;color:var(--muted);letter-spacing:1px;margin-bottom:5px}.meta-grid strong{font-size:12px}.badges{display:flex;gap:14px;align-items:center}.total-pill{padding:6px 12px;background:#e8f0ed;border-radius:6px;font-size:13px;font-weight:650}.timer-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f1f5f4;padding:14px;border-radius:8px;margin:20px 0}.timer-bar span{font-size:12px}.log-list{margin-top:25px}.log-row{border-top:1px solid var(--line);padding:17px 0;display:flex;justify-content:space-between;gap:15px}.log-row strong,.log-row span,.log-row small{display:block}.log-row span{font-size:12px;color:var(--muted)}.log-row small{margin-top:5px}.log-row details{max-width:330px;min-width:120px;font-size:12px}.log-row details form{margin-top:12px}.comment{padding:17px 0;border-top:1px solid var(--line)}.comment>small{margin-left:14px;color:var(--muted);font-size:10px}.comment p{font-size:13px;margin-top:8px;margin-bottom:0}.action-panel{background:#eaf0ec}.action-panel .eyebrow{display:block;margin-bottom:12px}.action-panel p{font-size:12px;color:#587175}.action-panel form+form{margin-top:20px}.file-link{display:block;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;overflow-wrap:anywhere}.file-link:last-of-type{margin-bottom:20px}.calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:11px;background:white}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.calendar-dayname{padding:15px 10px;font-size:10px;font-weight:700;text-align:center;background:#e9efed;border-right:1px solid var(--line)}.calendar-cell{padding:12px 9px;min-height:150px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.calendar-cell.outside{background:#f5f7f6;color:#a0b1b1}.calendar-cell.is-today{background:#fffbea}.cell-head{display:flex;justify-content:space-between;font-size:11px;margin-bottom:12px}.cell-head>a{font-size:16px}.calendar-task{display:block;background:#edf3f1;border-left:3px solid #6e969a;border-radius:4px;padding:8px;font-size:10px;margin-bottom:7px;overflow-wrap:anywhere;color:var(--accent)}.calendar-task small{display:block;font-size:9px;color:var(--accent);margin-top:4px}.calendar-task.overdue{background:#fff4e8;border-left-color:var(--accent);color:var(--accent)}.calendar-hours{font-size:9px;padding:5px 0;border-top:1px dashed var(--line);font-weight:650;color:#326558}.week-grid .panel{padding:20px}.week-grid .task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-total{margin-bottom:24px;background:var(--dark);color:white}.report-total span,.report-total>small{color:#b9cfd0}.report-total strong>small{font-size:14px;font-weight:400}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.report-row{display:flex;justify-content:space-between;font-size:12px;gap:10px;margin:15px 0 5px}progress{width:100%;height:5px;accent-color:#5f9194;border:none}progress::-webkit-progress-bar{background:#edf1ef;border-radius:4px}progress::-webkit-progress-value{background:#5f9194;border-radius:4px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;white-space:nowrap;font-size:10px;color:var(--muted);font-weight:650;letter-spacing:.4px;background:#f2f5f3}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}td small{display:block;font-size:10px;color:var(--muted)}.user-row{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:20px 0;border-top:1px solid var(--line)}.user-row small{display:block;color:var(--muted)}.user-row details{font-size:12px}.notification{display:flex;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.notification-dot{width:7px;height:7px;border-radius:50%;background:#d5dfdd;flex-shrink:0}.unread .notification-dot{background:var(--accent)}.notification small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.empty{grid-column:1/-1;text-align:center;padding:55px 20px;background:white;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.empty h3{color:var(--ink)}footer{display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.1px;color:#8b9da0;margin-top:50px;padding-top:20px;border-top:1px solid var(--line)}footer span{letter-spacing:0}.public{padding:30px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.public>.notice{max-width:960px;width:100%;margin:0 auto 20px}.public footer{max-width:1000px;margin:25px auto 0;width:100%}.login-shell{display:grid;grid-template-columns:1.1fr 1fr;max-width:1000px;width:100%;margin:auto;min-height:520px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.login-intro{background:var(--dark);color:#fff;padding:55px 42px;position:relative;overflow:hidden}.login-intro .eyebrow{color:#aac3c4}.login-intro h1{font-size:45px;margin-top:42px}.login-intro p{max-width:300px;color:#a9c2c4;font-size:13px}.large-mark{position:absolute;bottom:-35px;right:-12px;font-weight:900;font-size:125px;letter-spacing:-9px;color:#24484d}.login-card{padding:55px 42px}.login-card h2{font-size:29px;margin:20px 0 6px}.login-card form{margin-top:32px}.login-card .small{margin-top:24px}@media(min-width:1600px){.task-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.workspace{padding:30px 24px}.task-grid,.week-grid .task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{gap:10px}.stat{padding:16px}.detail-layout{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sidebar{position:relative;width:100%;padding:15px 18px;display:block}.brand{margin-bottom:10px}.brand .crest{height:34px;width:32px;font-size:15px}.sidebar>.nav-label,.sidebar nav>.nav-label{display:none}.sidebar nav{display:flex;gap:3px;overflow-x:auto}.sidebar nav>a{white-space:nowrap;padding:8px 10px;font-size:11px}.sidebar-bottom{display:none}.workspace{margin-left:0;padding:24px 17px}.page-header{align-items:start;gap:15px}.page-header .button{font-size:11px;padding:10px}.stats-grid{grid-template-columns:1fr 1fr}.task-grid,.week-grid .task-grid,.report-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.panel{padding:20px}.filters{gap:10px;padding:14px}.filters label{min-width:120px;max-width:none}.section-head{flex-wrap:wrap}.timer-bar,.log-row,.user-row{flex-wrap:wrap}.login-shell{grid-template-columns:1fr}.login-intro{padding:30px}.login-intro h1{font-size:34px;margin-top:20px}.large-mark{display:none}.login-card{padding:30px}.public{padding:16px}.public footer{font-size:7px}footer span{display:none}}

.club-logo{width:46px;height:46px;object-fit:contain;border-radius:50%}.login-logo{display:block;width:80px;height:80px;object-fit:contain;margin-bottom:25px}.sidebar nav>a.selected{background:#30373a}.sidebar nav>a:hover{background:#30373a}.login-intro{background:#161a1c}.large-mark{color:#252a2d}.primary:hover{background:#30383c}.login-intro h1{margin-top:24px}.sidebar nav{overflow-y:auto}
input[type=date],input[type=month]{color:var(--accent);font-weight:650}.filters>label>input,.filters>label>select,.filters>button{height:44px}.filters>button{align-self:flex-end}.exact-time{margin-top:16px}.exact-time summary{cursor:pointer;font-weight:650;color:var(--muted)}.exact-time form{margin-top:16px}.analyst-week-list{display:grid;gap:22px}.analyst-week{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.analyst-week-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:#f4f7f6;border-bottom:1px solid var(--line)}.analyst-week-head h2{margin:3px 0 0}.plan-totals{display:flex;flex-wrap:wrap;gap:8px}.plan-totals span{padding:5px 8px;border-radius:5px;background:#e5eeeb;color:#326558;font-size:10px;font-weight:700}.plan-totals .red{background:#fff0ef;color:var(--red)}.analyst-days{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));overflow-x:auto}.analyst-day{padding:13px 10px;min-height:165px;border-right:1px solid var(--line)}.analyst-day:last-child{border-right:none}.analyst-day h3{font-size:11px;margin:0 0 12px}.analyst-day h3 small{display:block;margin-top:2px;color:var(--muted);font-weight:500}.weekly-task{display:block;padding:9px;margin-bottom:8px;background:#edf3f1;border-left:3px solid #6e969a;border-radius:4px;font-size:10px;color:var(--ink)}.weekly-task:hover{color:var(--ink);background:#e3efeb}.weekly-task strong,.weekly-task span,.weekly-task small{display:block}.weekly-task strong{font-size:9px;color:var(--accent);margin-bottom:3px}.weekly-task span{font-weight:700;line-height:1.35}.weekly-task small{font-size:9px;color:var(--muted);line-height:1.45;margin-top:4px}.weekly-task.overdue{background:#fff4e8;border-left-color:var(--accent)}.weekly-free-day{display:flex;flex-direction:column;gap:2px;padding:10px;margin-bottom:8px;background:#fff8e8;border:1px dashed #d6a436;border-left:3px solid #d6a436;border-radius:4px;color:#725714;font-size:10px}.weekly-free-day strong{font-size:10px}.weekly-free-day small{font-size:9px;color:#92752a}.weekly-copy-panel{margin:20px 0}.weekly-copy-text{width:100%;min-height:300px;resize:vertical;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfc;color:var(--ink);font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.weekly-copy-panel .section-head{align-items:flex-start}.weekly-copy-panel small{display:block;margin-top:8px}.weekly-work-report{padding:14px 20px;background:#f8fbfa;border-bottom:1px solid var(--line)}.weekly-work-report-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px}.weekly-work-report progress{height:8px}.weekly-work-total{background:#dff0e8!important;color:#357558!important}.daily-hours{display:block;margin-top:5px;color:#326558;font-size:10px;font-weight:700}.weekly-no-task-form{margin-top:10px}.weekly-no-task-form .button{width:100%;font-size:11px;padding:7px 8px;background:#fff8e8;border-color:#d6a436;color:#725714}.weekly-no-task-form .button:hover{background:#ffefc4;color:#5b450e}@media(max-width:760px){.analyst-week-head{align-items:flex-start;flex-direction:column}.analyst-days{grid-template-columns:1fr;overflow:visible}.analyst-day{min-height:0;border-right:none;border-bottom:1px solid var(--line)}.analyst-day:last-child{border-bottom:none}}.leave-actions{display:flex;gap:7px}.leave-actions button{padding:6px 9px;font-size:10px}.status-approved{background:#dff0e8;color:#357558}.status-declined{background:#f6e4e4;color:#a94c4c}.task-card-open{background:#f8dcdc;color:#701d1d}.task-card.task-card-open{background:#f8dcdc;border-color:#cc5d5d;border-left:4px solid #a52c2c}.task-card-completed{background:#dff3e5;color:#1c643e;border-color:#67a87b;border-left:4px solid #287a4b}.task-card-open:hover{color:#701d1d;box-shadow:0 4px 20px #7a151520}.task-card-completed:hover{color:#1c643e;box-shadow:0 4px 20px #175c3520}.task-card-open h3,.task-card-open .card-desc,.task-card-open .card-bottom,.task-card-open .task-dates,.task-card-open .tag{color:#701d1d}.task-card-completed h3,.task-card-completed .card-desc,.task-card-completed .card-bottom,.task-card-completed .task-dates,.task-card-completed .tag{color:#1c643e}.task-card-open .task-dates{border-color:#d48787}.task-card-completed .task-dates{border-color:#8fc49e}.task-card-open .status{background:#fff1f1;color:#701d1d}.task-card-completed .status{background:#effaf2;color:#1c643e}.calendar-task.task-card-open,.weekly-task.task-card-open{background:#f8dcdc;border-left-color:#a52c2c;color:#701d1d}.calendar-task.task-card-completed,.weekly-task.task-card-completed{background:#dff3e5;border-left-color:#287a4b;color:#1c643e}.calendar-task.task-card-open small,.weekly-task.task-card-open strong,.weekly-task.task-card-open small{color:#701d1d}.calendar-task.task-card-completed small,.weekly-task.task-card-completed strong,.weekly-task.task-card-completed small{color:#1c643e}.calendar-task.task-card-open:hover,.weekly-task.task-card-open:hover{background:#f8dcdc;color:#701d1d}.calendar-task.task-card-completed:hover,.weekly-task.task-card-completed:hover{background:#dff3e5;color:#1c643e}.task-card-neutral{background:#fff;color:var(--ink)}.calendar-task.task-card-neutral,.weekly-task.task-card-neutral{background:#fff;border-left-color:#6e969a;color:var(--ink)}.calendar-task.task-card-neutral small,.weekly-task.task-card-neutral strong,.weekly-task.task-card-neutral small{color:var(--muted)}.calendar-task.task-card-neutral:hover,.weekly-task.task-card-neutral:hover{background:#fff;color:var(--ink)}.calendar-task.task-card-neutral.overdue,.weekly-task.task-card-neutral.overdue{background:#f8dcdc;border-left-color:#a52c2c;color:#701d1d}.calendar-task.task-card-neutral.overdue small,.weekly-task.task-card-neutral.overdue strong,.weekly-task.task-card-neutral.overdue small{color:#701d1d}
