/* Approved web layout: brief, tasks and a large calendar. Uses existing light/dark tokens. */
body.formal-app{font-size:16px}body.formal-app .app{margin:0;padding:8px;gap:8px}body.formal-app #sidebar{top:8px;height:calc(100dvh - 16px);padding:24px 16px;width:206px;flex-basis:206px;background:var(--surface)}body.formal-app #sidebar .brand{display:flex;font-size:24px;margin:0 4px 26px}body.formal-app .brand small,body.formal-app .calendar-panel-title{display:none}body.formal-app .topbar{padding:0 28px}.project-list-page .filters{margin-bottom:20px}body.formal-app #main{padding:30px;max-width:1500px}body.formal-app .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}body.formal-app .project-card{max-width:none;padding:21px 23px;gap:0;position:relative;border-radius:13px;cursor:default}.project-card.priority-focus{border-left:4px solid #c99b46!important;background:var(--surface)!important}body.formal-app .project-card h3{font-size:18px}.project-star{font-size:21px;min-width:36px;min-height:36px;background:none;border:0;color:var(--secondary)}.project-star.on{color:#bb8836}.project-focus-label{background:var(--warn-bg)!important;color:var(--warn-text)!important}.project-card>.project-focus-label{align-self:flex-start;margin-top:6px;font-size:11px!important}.project-card .project-note{min-height:0!important;margin:10px 0 0;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card .project-note:empty{display:none}.project-delivery{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:17px 0 14px}.project-delivery small{display:block;font-size:12px;color:var(--secondary);margin-bottom:4px}.project-delivery strong{font-size:15px;font-weight:550;display:block}.project-delivery>span{font-size:12px;color:var(--secondary);white-space:nowrap}.project-card .project-chart{gap:12px}.project-card .progress-ring{width:46px;height:46px}.project-card .progress-ring:before{inset:5px}.project-card .progress-ring strong{font-size:12px}body.formal-app .project-card .project-chart p{font-size:13px;margin:3px 0}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);margin-top:17px;padding-top:12px}.project-card-footer small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%;font-size:12px;color:var(--secondary)}body.formal-app .project-card-footer .button{font-size:13px;color:var(--accent)}.today-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px}.today-task-group{margin-top:24px}.today-task-group h3{font-size:13px!important;color:var(--secondary);margin:0 0 10px}.today-task-group.group-late h3{color:var(--danger)}.today-workspace .task-row{padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;margin-bottom:9px}.today-workspace .task-meta{font-size:12px!important}.today-workspace .task-title{font-size:16px!important}.today-workspace .due{font-size:12px!important}.today-workspace .stack{align-content:start}.today-workspace .today-event{padding:15px 0}.project-workspace-backdrop{position:fixed;inset:0;background:#24223855;border:0;z-index:30}.project-workspace{position:fixed;top:0;bottom:0;right:0;width:min(1260px,calc(100vw - 50px));background:var(--surface);box-shadow:-15px 0 60px #0002;padding:24px 28px;overflow-y:auto;z-index:31;color:var(--text)}.project-workspace-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.project-workspace-heading{display:flex;justify-content:space-between;gap:15px;margin-bottom:22px}.project-workspace-heading h1{font-size:27px;letter-spacing:-.5px;margin:0 0 8px}.project-workspace-heading p{font-size:13px;margin:0}.project-brief{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:16px 20px;margin-bottom:24px}.project-brief .panel-heading{margin-bottom:5px}.project-brief h2{font-size:16px}.project-brief-goal{font-size:14px;white-space:pre-wrap;margin:8px 0!important;color:var(--text)!important}.project-brief-meta{display:grid;grid-template-columns:1.4fr 1.4fr .7fr;gap:20px;margin-top:14px}.project-brief-meta small{font-size:11px;color:var(--secondary)}.project-brief-meta p{font-size:13px;white-space:pre-wrap;margin:4px 0!important}.project-planning-grid{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px}.project-task-list{max-height:430px;overflow:auto}.project-task-pane .task-row{padding:12px 9px;border:1px solid var(--border);background:var(--surface-2);border-radius:9px;margin:0 0 9px;align-items:flex-start}.project-task-pane .task-check{margin-top:5px;flex:none}.project-task-pane .task-title{font-size:15px!important}.project-task-pane .task-meta{font-size:11px!important}.project-task-pane .due{max-width:73px;font-size:11px!important;white-space:normal;text-align:right}.project-task-pane .task-meta>span:first-child{display:none}.project-task-pane .task-meta>span:nth-child(2){display:none}.project-records{font-size:13px;margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.project-records summary{cursor:pointer;color:var(--secondary)}.project-records .log-item{font-size:13px;white-space:pre-wrap}.project-calendar>h2{font-size:18px;margin-bottom:14px}.pp-calendar-board{border:1px solid var(--border);border-radius:11px;padding:12px;min-width:0}.pp-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.pp-toolbar>div{display:flex;align-items:center;gap:5px}.pp-toolbar strong{font-size:15px;margin-right:4px}.pp-toolbar button{border:1px solid var(--border);background:var(--surface);border-radius:7px;min-height:34px;min-width:30px;padding:3px 8px;font-size:12px;color:var(--text)}.pp-view{background:var(--surface-2);border-radius:7px;padding:3px}.pp-view button{border-color:transparent;background:transparent}.pp-view button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 5px #0001}.pp-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px repeat(var(--rows),minmax(0,1fr));height:420px;min-width:0}.pp-weekday{font-size:11px;color:var(--secondary);text-align:center}.pp-day{border-top:1px solid var(--border);border-right:1px solid var(--border);padding:4px;min-width:0;overflow:hidden}.pp-day:nth-child(7n){border-right:0}.pp-day.outside{background:var(--surface-2)}.pp-day.outside .pp-day-number{opacity:.45}.pp-day.selected{background:var(--accent-soft)}.pp-day-number{font-size:12px;min-width:25px;height:25px;border:0;background:none;border-radius:50%;color:var(--text)}.pp-day.today .pp-day-number{background:var(--accent);color:var(--accent-text)}.pp-event{display:block;width:100%;border:0;border-left:2px solid var(--accent);text-align:left;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px;margin-top:3px}.pp-event.deadline{color:var(--warn-text);background:var(--warn-bg);border-color:var(--warn-text)}.pp-event.completed{background:var(--personal-bg);color:var(--personal-text);border-color:var(--personal-text)}.pp-more{border:0;background:none;font-size:10px;padding:2px;color:var(--secondary)}.pp-agenda{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.pp-agenda h3{font-size:15px}.pp-agenda-entry{display:block;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:11px;margin-top:9px}.pp-agenda-entry strong{font-size:13px;display:block;font-weight:550}.pp-agenda-entry small{font-size:11px;display:block;margin-top:5px;color:var(--secondary)}.pp-agenda-entry.completed{background:var(--personal-bg)}.pp-week-head,.pp-week-all{display:grid;grid-template-columns:32px repeat(7,minmax(0,1fr))}.pp-week-head button{border:0;background:none;font-size:10px;color:var(--text);padding:5px 0}.pp-week-head b{display:block;font-size:15px}.pp-week-head .selected{background:var(--accent-soft);border-radius:6px}.pp-week-all>div{border:1px solid var(--border);padding:3px;min-width:0}.pp-week-all small{font-size:10px;color:var(--secondary)}.pp-week-scroll{height:350px;overflow:auto}.pp-week-body{height:864px;display:grid;grid-template-columns:32px repeat(7,minmax(0,1fr));position:relative}.pp-hours{position:relative}.pp-hours span{position:absolute;font-size:9px;color:var(--secondary)}.pp-week-column{position:relative;border-right:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0,transparent 35px,var(--border) 35px,var(--border) 36px);min-width:0}.pp-week-column.selected{background-color:var(--accent-soft)}.pp-time{position:absolute;left:2px;right:2px;border:0;border-left:2px solid var(--accent);border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:10px;padding:4px 2px;text-align:left;overflow:hidden}.pp-time small{display:block;font-size:9px}.project-workspace-open #drawer:not([hidden]){z-index:36!important}.project-workspace-open .mobile-add{display:none!important}
body.formal-app.calendar-mode #calendar-host{padding:20px 24px 24px}body.formal-app.calendar-mode #calendar-view .cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;background:transparent;overflow:visible}body.formal-app.calendar-mode #calendar-view .cal-layout>section{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:13px;overflow:hidden;background:var(--surface);min-height:0}body.formal-app #calendar-view .cal-side{display:block!important;position:static;width:auto;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:13px;overflow:auto}body.formal-app #calendar-view .cal-side .side-metrics,body.formal-app #calendar-view .cal-side>h3:first-child{display:none}body.formal-app .calendar-context{display:none!important}body.formal-app .cal-toolbar{padding:16px;min-height:70px;flex-wrap:wrap;gap:10px}.cal-controls{gap:7px}.cal-controls button{border-radius:7px}.event-pill.event-deadline{background:var(--warn-bg)!important;color:var(--warn-text)!important;border-left-color:var(--warn-text)!important}.event-pill.event-completed{background:var(--personal-bg)!important;color:var(--personal-text)!important;border-left-color:var(--personal-text)!important}body.formal-app .cal-side .side-event{font-size:13px;padding:12px}.side-note{font-size:12px}.project-workspace .button{font-size:14px}.project-workspace .panel-heading>small{font-size:12px;color:var(--secondary)}
@media(min-width:801px){body.formal-app.calendar-mode #calendar-view .cal-layout{height:calc(100dvh - 115px);min-height:580px;grid-template-rows:minmax(0,1fr)}body.formal-app .cal-month{flex:1;min-height:0;grid-template-rows:repeat(var(--cal-rows),minmax(0,1fr))}body.formal-app .cal-day{min-height:0!important;overflow:hidden}body.formal-app .week-scroll{flex:1;min-height:0;max-height:none!important}body.formal-app .week-head,body.formal-app .week-allday{flex:none}body.formal-app #calendar-view .cal-weekdays{flex:none}body.formal-app .event-pill{font-size:11px}.project-workspace-heading .actions{align-self:flex-start}}
@media(min-width:1600px){body.formal-app .project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px) and (min-width:801px){.project-planning-grid{grid-template-columns:270px minmax(0,1fr)}.project-workspace{width:calc(100vw - 25px);padding:22px}.project-workspace-heading{flex-wrap:wrap}.project-workspace-heading h1{font-size:24px}}
@media(max-width:800px){body.formal-app .app{padding:0;gap:0}body.formal-app #main{padding:23px 16px 105px}body.formal-app .project-grid{grid-template-columns:1fr;gap:13px}body.formal-app .project-card{padding:13px 16px}.project-card .project-note{display:none}.project-card>.project-focus-label{display:none}.project-delivery{margin:10px 0}.project-delivery small{display:none}.project-delivery strong{font-size:14px}.project-delivery>span{font-size:11px}.project-card-footer{border:0;margin-top:4px;padding:0;justify-content:flex-end}.project-card-footer small{display:none}.project-card .progress-ring{width:39px;height:39px}.project-card .progress-ring strong{font-size:11px}.project-card .project-top .task-title{min-height:40px}body.formal-app .project-card h3{font-size:16px}.today-workspace{display:block}.today-workspace>.stack{margin-top:18px}.today-workspace .task-title{font-size:15px!important}.today-task-group{margin-top:18px}.project-workspace{width:100%;padding:18px 15px}.project-workspace-heading{display:block}.project-workspace-heading h1{font-size:23px}.project-workspace-heading .actions{margin-top:15px}.project-brief{padding:14px}.project-brief-meta{grid-template-columns:1fr 1fr;gap:12px}.project-planning-grid{display:block}.project-calendar{margin-top:24px}.project-task-list{max-height:310px}.project-task-pane .task-title{font-size:15px!important}.project-task-pane .task-meta{font-size:11px!important}.pp-month{height:390px}.pp-toolbar strong{font-size:14px}.pp-toolbar button{min-height:36px}.pp-event{font-size:9px}.pp-day-number{min-width:23px;height:25px}.pp-calendar-board{padding:10px}body.formal-app.calendar-mode #calendar-host{padding:15px 8px 90px}body.formal-app.calendar-mode #calendar-view .cal-layout{display:block}body.formal-app #calendar-view .cal-side{margin-top:15px;max-height:none}.cal-toolbar h2{font-size:19px}.cal-controls{flex-wrap:wrap}.cal-day{min-height:65px!important}.cal-month .event-pill{font-size:9px}.day-add{opacity:1}.project-task-pane .due{max-width:65px}.project-brief .panel-heading{align-items:center}.project-brief .button.quiet{font-size:12px}.project-workspace .button{min-height:42px}.pp-day button{min-height:0!important}}

body.formal-app .cal-day.selected-day{background:var(--accent-soft)}

.project-task-date{background:transparent;border:0;cursor:pointer;min-height:34px;padding:0 2px}.project-task-date:hover{color:var(--accent)!important}
