:root{
  --bg:#f5f7fa;--surface:#fff;--surface-2:#f8fafc;--text:#1d1d1f;--muted:#6e6e73;--border:#e5e5ea;
  --primary:#0a84ff;--primary-soft:#eaf3ff;--success:#34c759;--warning:#ff9f0a;--danger:#ff3b30;--purple:#af52de;--teal:#30b0c7;--navy:#1f365c;
  --radius:16px;--radius-sm:10px;--shadow:0 10px 30px rgba(30,42,60,.06);--sidebar:248px;--topbar:76px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--primary);text-decoration:none}.is-hidden{display:none!important}.mobile-only{display:none!important}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(420px,.75fr);background:#fff}.login-art{position:relative;overflow:hidden;background:linear-gradient(145deg,#eef6ff 0%,#f7f8fb 46%,#eef8f6 100%);display:flex;align-items:center;padding:64px 7vw}.login-art-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(10,132,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(10,132,255,.05) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom right,#000,transparent 78%)}.login-art:after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(10,132,255,.16),rgba(48,176,199,.06) 54%,transparent 72%);right:-80px;bottom:-120px}.login-art-copy{position:relative;z-index:1;max-width:620px}.login-logo{width:190px;height:auto;margin-bottom:30px}.login-art-copy>p{font-size:31px;line-height:1.18;max-width:520px;margin:0 0 54px;font-weight:650;letter-spacing:-.03em}.login-feature-row{display:grid;grid-template-columns:42px 135px 1fr;gap:14px;align-items:center;padding:17px 0;border-top:1px solid rgba(29,29,31,.1)}.login-feature-row span{font:600 12px/1 SFMono-Regular,Consolas,monospace;color:var(--primary)}.login-feature-row b{font-size:15px}.login-feature-row small{font-size:14px;color:var(--muted)}.login-panel{display:flex;align-items:center;justify-content:center;padding:48px}.login-card{width:min(420px,100%)}.login-card-head{display:flex;gap:16px;align-items:center}.login-mark{width:52px;height:52px;object-fit:contain}.eyebrow{font:650 11px/1.2 SFMono-Regular,Consolas,monospace;letter-spacing:.1em;color:var(--primary);text-transform:uppercase}.login-card h1{font-size:30px;letter-spacing:-.035em;margin:5px 0 0}.login-intro{color:var(--muted);line-height:1.55;margin:24px 0 30px}.field-label{display:block;font-size:13px;font-weight:650;margin:15px 0 8px}.login-card input,.form-control,input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;border-radius:10px;min-height:42px;padding:10px 12px;outline:none;transition:.18s border,.18s box-shadow}.login-card input:focus,input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(10,132,255,.12)}textarea{min-height:92px;resize:vertical}.btn{border:0;border-radius:10px;min-height:42px;padding:10px 16px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{filter:brightness(.96)}.btn-secondary{background:#fff;border:1px solid var(--border)}.btn-ghost{background:transparent}.btn-danger{background:#fff0ef;color:var(--danger)}.btn-block{width:100%;margin-top:24px}.btn-sm{min-height:34px;padding:7px 11px;font-size:13px}.form-error{color:var(--danger);font-size:13px;min-height:22px;margin-top:10px}.candidate-note{margin-top:24px;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px}.dot{width:7px;height:7px;border-radius:50%;background:var(--success)}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--border);padding:20px 16px 16px;display:flex;flex-direction:column;z-index:40;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 14px}.brand-mark{width:36px;height:36px;object-fit:contain}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:17px;letter-spacing:.04em}.brand-copy span{font-size:12px;color:var(--muted)}.candidate-badge{margin:0 8px 18px;padding:7px 9px;border-radius:8px;background:var(--surface-2);color:var(--muted);font:600 10px/1.2 SFMono-Regular,Consolas,monospace;text-align:center;border:1px solid var(--border)}.area-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface-2);border:1px solid var(--border);padding:4px;border-radius:11px;margin:0 4px 18px}.area-switch button{border:0;background:transparent;border-radius:8px;padding:8px 6px;font-size:13px;font-weight:650;color:var(--muted)}.area-switch button.active{background:#fff;color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.08)}.main-nav{display:flex;flex-direction:column;gap:3px}.nav-section{font-size:10px;font-weight:700;color:#9a9aa0;letter-spacing:.11em;text-transform:uppercase;margin:14px 10px 7px}.nav-item{width:100%;border:0;background:transparent;color:#4e4e52;border-radius:10px;padding:10px 11px;display:flex;align-items:center;gap:11px;text-align:left;font-size:14px;font-weight:550}.nav-item svg{width:18px;height:18px}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--primary-soft);color:#0768c7;font-weight:700}.nav-item .nav-badge{margin-left:auto;background:#eef0f4;color:var(--muted);border-radius:999px;min-width:22px;padding:2px 7px;text-align:center;font-size:11px}.nav-item.active .nav-badge{background:#fff;color:var(--primary)}.sidebar-spacer{flex:1}.sidebar-status{border-top:1px solid var(--border);padding:14px 8px 8px}.status-line{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);padding:4px 0}.status-dot{width:7px;height:7px;border-radius:50%;background:#c5c5c9}.status-dot.ok{background:var(--success)}.status-dot.safe{background:var(--primary)}.profile-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:9px;display:flex;align-items:center;gap:9px;text-align:left;margin-top:9px}.profile-card:hover{background:var(--surface-2)}.avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--primary),var(--teal));display:grid;place-items:center;color:#fff;font-weight:750}.profile-copy{min-width:0;display:flex;flex-direction:column;flex:1}.profile-copy b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy small{font-size:11px;color:var(--muted)}.profile-exit{font-size:14px;color:#a1a1a6}
.app-main{min-width:0}.topbar{position:sticky;top:0;height:var(--topbar);background:rgba(245,247,250,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(229,229,234,.85);z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 30px}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}.topbar-left h2{margin:3px 0 0;font-size:22px;letter-spacing:-.025em}.breadcrumb{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}.topbar-actions{display:flex;align-items:center;gap:10px}.search-box{width:min(340px,30vw);height:40px;border:1px solid var(--border);background:#fff;border-radius:11px;display:flex;align-items:center;gap:8px;padding:0 11px}.search-box svg{width:17px;color:#a1a1a6}.search-box input{border:0;box-shadow:none;min-height:0;padding:0;background:transparent}.search-box input:focus{box-shadow:none}.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;padding:0}.icon-btn:hover{background:var(--surface-2)}.with-badge{position:relative}.button-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center;border:2px solid var(--bg)}.content{padding:28px 30px 60px;max-width:1720px;margin:0 auto;outline:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.page-header h1{font-size:30px;line-height:1.15;letter-spacing:-.045em;margin:0 0 7px}.page-header p{margin:0;color:var(--muted);font-size:14px;line-height:1.55;max-width:760px}.page-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px rgba(10,20,40,.015)}.metric-card{padding:18px}.metric-label{font-size:12px;color:var(--muted);font-weight:600}.metric-value{font-size:30px;line-height:1.1;margin:9px 0 5px;font-weight:730;letter-spacing:-.04em}.metric-foot{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.metric-accent{width:34px;height:5px;border-radius:99px;background:var(--primary);margin-bottom:14px}.metric-accent.teal{background:var(--teal)}.metric-accent.warning{background:var(--warning)}.metric-accent.purple{background:var(--purple)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px;border-bottom:1px solid var(--border)}.card-head h3{font-size:16px;margin:0;letter-spacing:-.015em}.card-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.card-body{padding:18px 19px}.card-body.flush{padding:0}.section-stack{display:grid;gap:16px}.split-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px}.proposal-layout{display:grid;grid-template-columns:280px minmax(0,1fr) 330px;gap:14px;min-height:600px}.sticky-card{position:sticky;top:calc(var(--topbar) + 18px);align-self:start}.empty-state{padding:54px 24px;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:var(--text);font-size:16px;margin:9px 0 5px}.empty-icon{width:46px;height:46px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;margin:0 auto;color:var(--primary)}.empty-icon svg{width:23px;height:23px}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:760px}.data-table th{position:sticky;top:0;background:#fafbfc;color:var(--muted);font-size:11px;letter-spacing:.035em;text-transform:uppercase;text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);z-index:1}.data-table td{padding:12px 14px;border-bottom:1px solid #efeff2;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfcfe}.click-row{cursor:pointer}.cell-title{font-weight:680}.cell-sub{display:block;font-size:11px;color:var(--muted);margin-top:3px}.cell-actions{display:flex;justify-content:flex-end;gap:6px}.table-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}.table-toolbar input,.table-toolbar select{width:auto;min-width:150px;background:#fff}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}.tab-btn{border:0;background:transparent;padding:12px 14px;color:var(--muted);font-weight:630;white-space:nowrap;position:relative}.tab-btn.active{color:var(--text)}.tab-btn.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--primary);border-radius:2px}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.segmented button{border:0;background:transparent;border-radius:7px;padding:7px 10px;font-size:12px;color:var(--muted)}.segmented button.active{background:#fff;color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:650;white-space:nowrap;background:#f0f1f3;color:#626269}.chip.info{background:#eaf3ff;color:#0768c7}.chip.success{background:#eaf8ee;color:#218b3a}.chip.warning{background:#fff4e5;color:#b76600}.chip.danger{background:#fff0ef;color:#c5251c}.chip.purple{background:#f5edfb;color:#7b2e9d}.chip.teal{background:#e9f8fa;color:#207c89}.team-tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef6ff;color:#1969b6;font-size:11px;font-weight:650}.team-tag.planner{background:#e9f8fa;color:#207c89}.team-tag.design{background:#f5edfb;color:#7b2e9d}.team-tag.production{background:#fff4e5;color:#b76600}.team-tag.accounting{background:#eaf8ee;color:#218b3a}.progress{height:7px;background:#eceef2;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--teal));border-radius:inherit}.project-card{padding:17px;display:grid;gap:13px;cursor:pointer}.project-card:hover{border-color:#cfd8e5;box-shadow:var(--shadow)}.project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.project-code{font:650 11px/1.2 SFMono-Regular,Consolas,monospace;color:var(--primary)}.project-card h3{font-size:16px;margin:3px 0 0}.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px;color:var(--muted)}.project-meta b{display:block;color:var(--text);font-size:13px;margin-top:3px}.project-header{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:19px 20px;margin-bottom:18px}.project-header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.project-header h1{font-size:25px;margin:4px 0 7px;letter-spacing:-.035em}.project-header-meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px}.project-header-meta b{color:var(--text);font-weight:650}.project-step{display:flex;align-items:center;gap:10px;background:var(--primary-soft);color:#0b5fa8;border-radius:11px;padding:10px 12px;font-size:12px;margin-top:14px}.project-step strong{color:#064f8e}
.master-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.tree-table{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.tree-head,.tree-row{display:grid;grid-template-columns:minmax(300px,1.7fr) 150px 130px 125px 84px;align-items:center}.tree-head{background:#fafbfc;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;border-bottom:1px solid var(--border)}.tree-head>div,.tree-row>div{padding:10px 12px}.tree-row{min-height:49px;border-bottom:1px solid #efeff2;font-size:13px}.tree-row:last-child{border-bottom:0}.tree-row:hover{background:#fbfcfe}.tree-title{display:flex;align-items:center;min-width:0}.tree-indent{display:inline-block;flex:0 0 auto}.tree-caret{width:26px;height:26px;border:0;background:transparent;border-radius:7px;display:grid;place-items:center;color:var(--muted)}.tree-caret:hover{background:#eef1f5}.tree-caret.placeholder{visibility:hidden}.tree-title-copy{min-width:0}.tree-title-copy b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-title-copy small{display:block;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-actions{display:flex;justify-content:flex-end}.more-btn{border:0;background:transparent;border-radius:8px;width:30px;height:30px}.more-btn:hover{background:#eef1f5}.tree-deleted{opacity:.6}.view-note{font-size:12px;color:var(--muted)}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow-x:auto}.day-column{border:1px solid var(--border);background:#fff;border-radius:13px;min-height:230px}.day-head{padding:10px 11px;border-bottom:1px solid var(--border);font-size:12px;font-weight:680}.day-list{padding:8px}.deadline-card{padding:9px;border:1px solid #eceef1;border-radius:9px;margin-bottom:7px;font-size:12px}.deadline-card b{display:block;margin-bottom:4px}.deadline-card small{color:var(--muted)}
.proposal-list{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}.proposal-list-head{padding:14px;border-bottom:1px solid var(--border)}.proposal-list-items{max-height:680px;overflow:auto}.proposal-list-item{width:100%;text-align:left;border:0;border-bottom:1px solid #efeff2;background:#fff;padding:13px}.proposal-list-item:hover{background:#fafbfc}.proposal-list-item.active{background:var(--primary-soft)}.proposal-list-item b{display:block;font-size:13px}.proposal-list-item small{display:block;color:var(--muted);margin-top:4px}.message-stream{display:flex;flex-direction:column;gap:10px;max-height:480px;overflow:auto;padding-right:4px}.message{border:1px solid var(--border);border-radius:12px;padding:11px;background:#fff}.message-head{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-bottom:6px}.message p{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap}.message.pinned{border-color:#b9d9ff;background:#f7fbff}.composer{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.composer-row{display:flex;gap:8px}.composer-row textarea{min-height:70px}.cost-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.summary-tile{padding:11px;background:var(--surface-2);border-radius:10px}.summary-tile span{font-size:11px;color:var(--muted)}.summary-tile b{display:block;margin-top:4px}.evaluation-card{border:1px solid var(--border);border-radius:12px;padding:12px}.evaluation-card+.evaluation-card{margin-top:9px}.evaluation-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.evaluation-card p{font-size:12px;color:var(--muted);margin:7px 0 0}.design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.design-card{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.design-thumb{height:120px;background:linear-gradient(135deg,#eef4fb,#f8eef9);display:grid;place-items:center;color:var(--purple)}.design-thumb svg{width:34px;height:34px}.design-card-body{padding:13px}.design-card-body h4{margin:0 0 5px}.design-card-body p{margin:0;color:var(--muted);font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;font-size:12px;font-weight:680;margin:0 0 6px}.field small{display:block;color:var(--muted);font-size:11px;margin:0 0 6px;line-height:1.45}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:6px}.form-callout{background:var(--primary-soft);border:1px solid #cae3ff;border-radius:11px;padding:11px 12px;font-size:12px;color:#0d5d9e}.form-callout strong{display:block;color:#064f8e;margin-bottom:3px}.checklist-editor{display:grid;gap:7px}.check-row{display:grid;grid-template-columns:24px 1fr 34px;gap:7px;align-items:center}.check-row input[type=checkbox]{width:18px;min-height:18px}.inline-fields{display:flex;gap:8px;align-items:end}.inline-fields>*{flex:1}.danger-zone{border:1px solid #ffd4d1;background:#fff8f7;border-radius:12px;padding:12px}.danger-zone h4{color:var(--danger);margin:0 0 5px}.danger-zone p{color:#8c514d;font-size:12px;margin:0 0 10px}
.modal,.drawer{position:fixed;inset:0;pointer-events:none;opacity:0;transition:.18s opacity}.drawer{z-index:100}.modal{z-index:130}.modal.open,.drawer.open{pointer-events:auto;opacity:1}.modal-backdrop,.drawer-backdrop{position:absolute;inset:0;background:rgba(18,24,35,.32);backdrop-filter:blur(2px)}.modal-card{position:relative;margin:5vh auto;width:min(780px,calc(100vw - 32px));max-height:90vh;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(16,25,40,.24);overflow:hidden;transform:translateY(12px);transition:.18s transform}.modal.open .modal-card{transform:none}.modal-head,.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-head h3,.drawer-head h3{margin:4px 0 0;font-size:19px}.modal-body{padding:20px;max-height:calc(90vh - 78px);overflow:auto}.drawer-card{position:absolute;top:0;right:0;height:100%;width:min(520px,calc(100vw - 24px));background:#fff;box-shadow:-20px 0 70px rgba(15,25,40,.18);transform:translateX(100%);transition:.2s transform}.drawer.open .drawer-card{transform:none}.drawer-body{padding:18px 20px 60px;height:calc(100% - 76px);overflow:auto}.toast{position:fixed;z-index:150;right:24px;bottom:24px;background:#1f2430;color:#fff;border-radius:11px;padding:11px 14px;box-shadow:0 12px 32px rgba(0,0,0,.22);font-size:13px;transform:translateY(18px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:none;opacity:1}.toast.error{background:#9f261e}.toast.success{background:#146b34}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);padding:42px}.spinner{width:20px;height:20px;border:2px solid #d9dce2;border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-layout{grid-template-columns:250px minmax(0,1fr)}.proposal-layout>.proposal-side{grid-column:1/-1}.tree-head,.tree-row{grid-template-columns:minmax(280px,1.7fr) 130px 120px 110px 70px}.split-layout{grid-template-columns:1fr}.sticky-card{position:static}.design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){:root{--sidebar:270px}.mobile-only{display:grid!important}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:.2s transform;box-shadow:20px 0 60px rgba(10,20,40,.15)}.sidebar.open{transform:none}.topbar{padding:0 18px}.content{padding:22px 18px 48px}.search-box{display:none}.grid-3,.grid-2{grid-template-columns:1fr}.project-header-main,.page-header{flex-direction:column}.page-actions{justify-content:flex-start}.proposal-layout{grid-template-columns:1fr}.tree-head{display:none}.tree-row{grid-template-columns:1fr 110px}.tree-row>div:nth-child(3),.tree-row>div:nth-child(4){display:none}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:1}.login-view{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh;padding:28px}.design-grid{grid-template-columns:1fr}}
@media(max-width:620px){.grid-4{grid-template-columns:1fr}.topbar-actions{gap:5px}.content{padding-left:12px;padding-right:12px}.modal-card{width:calc(100vw - 16px);margin:8px auto;max-height:calc(100vh - 16px)}.modal-body{max-height:calc(100vh - 92px)}.project-meta{grid-template-columns:1fr}.inline-fields{flex-direction:column;align-items:stretch}}

/* =======================================================================
   PLANNER APPROVED UI — nguồn trực tiếp từ ba mockup được Chat 00 duyệt
   Tách biệt hoàn toàn với giao diện Sale hiện hành.
   ======================================================================= */
:root{--sidebar:252px;--topbar:74px;--nav-bg:#111b32;--nav-bg-2:#162541;--nav-text:#d8e0ed;--nav-muted:#8491a8;--approved-blue:#2f80ed;--approved-bg:#f5f7fb}
body{background:var(--approved-bg)}
.app-shell{grid-template-columns:var(--sidebar) minmax(0,1fr);background:var(--approved-bg)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--nav-bg),#0e172a);border:0;color:#fff;padding:22px 14px 16px;overflow-y:auto;overflow-x:hidden}
.brand{padding:3px 10px 18px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:12px}.brand-mark{filter:brightness(0) invert(1);width:38px;height:38px}.brand-copy strong{font-size:18px;color:#fff;letter-spacing:.08em}.brand-copy span{color:#aeb9c9;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.candidate-badge{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#91a0b8;margin:0 8px 9px}.nav-section{color:#77869f;margin-top:12px}.main-nav{gap:2px}.nav-item{color:var(--nav-text);border-radius:9px;padding:10px 11px;font-weight:560}.nav-item:hover{background:rgba(255,255,255,.065)}.nav-item.active{background:#245ead;color:#fff;box-shadow:inset 3px 0 0 #69a8ff}.nav-item .nav-badge{background:#2d6bc0;color:#fff}.nav-projects{display:grid;gap:1px;margin:0 0 8px 34px;padding-left:10px;border-left:1px solid rgba(255,255,255,.12)}.nav-project,.nav-all{border:0;background:transparent;color:#aab6c9;text-align:left;padding:6px 7px;border-radius:7px;font-size:12px;display:flex;align-items:center;gap:8px;min-width:0}.nav-project:hover,.nav-all:hover{background:rgba(255,255,255,.06);color:#fff}.nav-project.active{background:rgba(47,128,237,.26);color:#fff}.nav-project-dot{width:6px;height:6px;border-radius:50%;background:#52647e;flex:0 0 auto}.nav-project.active .nav-project-dot{background:#67a8ff}.nav-all{color:#67a8ff;font-weight:650}.sidebar-status{border-color:rgba(255,255,255,.09)}.status-line{color:#8f9cb0}.profile-card{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.055);color:#fff}.profile-card:hover{background:rgba(255,255,255,.09)}.profile-copy small,.profile-exit{color:#8998ad}.avatar{border-radius:50%}
.app-main{background:var(--approved-bg)}.topbar{background:rgba(245,247,251,.92);border-color:#e3e7ed;padding:0 28px}.content{max-width:1680px;padding:27px 30px 60px}.breadcrumb{color:#7c8798}.search-box{border-color:#dfe4eb;box-shadow:0 1px 2px rgba(20,35,60,.02)}
.approved-greeting{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.approved-greeting h1{font-size:28px;letter-spacing:-.035em;margin:0 0 5px}.approved-greeting p{margin:0;color:var(--muted);font-size:13px}.approved-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.approved-kpi{background:#fff;border:1px solid #e4e8ee;border-radius:14px;padding:17px;display:flex;gap:13px;align-items:center;box-shadow:0 2px 9px rgba(24,40,68,.025)}.approved-kpi .kpi-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.approved-kpi .kpi-icon svg{width:21px;height:21px}.kpi-icon.blue{background:#eaf3ff;color:#2879df}.kpi-icon.purple{background:#f2edff;color:#7358c7}.kpi-icon.red{background:#fff0ef;color:#d84a43}.kpi-icon.orange{background:#fff4e5;color:#c87811}.approved-kpi small{display:block;color:#6f7a8a;font-size:11px;font-weight:650}.approved-kpi strong{display:inline-block;font-size:27px;line-height:1;margin:8px 7px 0 0;letter-spacing:-.04em}.approved-kpi em{font-style:normal;color:#8b94a2;font-size:11px}.dashboard-primary{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.67fr);gap:15px;margin-bottom:15px}.dashboard-widgets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.approved-section-head{align-items:flex-start}.filter-row{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}.filter-pill{border:0;background:#f1f4f8;border-radius:999px;padding:6px 10px;color:#667285;font-size:11px}.filter-pill.active{background:#e8f2ff;color:#286ec4;font-weight:700}.link-btn{border:0;background:transparent;color:#2879df;font-size:12px;font-weight:650;padding:3px}.responsive-table{overflow:auto}.approved-project-table{width:100%;border-collapse:collapse;min-width:760px}.approved-project-table th{padding:11px 13px;background:#f8fafc;color:#7a8494;font-size:10px;letter-spacing:.045em;text-align:left}.approved-project-table td{padding:12px 13px;border-top:1px solid #edf0f4;font-size:12px}.approved-project-table tbody tr{cursor:pointer}.approved-project-table tbody tr:hover{background:#fbfdff}.approved-project-table td b{display:block}.approved-project-table td small{display:block;color:#8b94a2;margin-top:3px}.progress-cell{display:flex;align-items:center;gap:8px}.progress-cell>span{width:31px;font-weight:650}.progress-cell .progress{width:74px}.deadline-timeline{display:grid;gap:3px}.deadline-timeline>button{width:100%;border:0;border-bottom:1px solid #edf0f4;background:transparent;padding:11px 0;display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left}.deadline-timeline time{font-size:11px;color:#5e6b7e;font-weight:650}.deadline-timeline b{display:block;font-size:12px}.deadline-timeline small{display:block;color:#8b94a2;margin-top:3px;font-size:10px}.dashboard-widget .card-body{padding:8px 16px 14px}.widget-row{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid #edf0f4}.widget-row:last-child{border-bottom:0}.widget-row b{display:block;font-size:12px}.widget-row small{display:block;color:#8b94a2;font-size:10px;margin-top:3px}.widget-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#70a3df;flex:0 0 auto}.widget-dot.warning{background:#f3a640}.widget-dot.danger{background:#e4554e}.widget-dot.info{background:#4c8edc}
.project-header{border-radius:13px;box-shadow:0 2px 8px rgba(20,35,60,.025)}.project-tabs{border-bottom:1px solid var(--border)}
.proposal-layout{grid-template-columns:292px minmax(420px,1fr) 340px;align-items:start}.proposal-list,.message,.evaluation-card{box-shadow:0 1px 2px rgba(20,35,60,.015)}
.notification-row{padding:12px 0;border-bottom:1px solid var(--border)}.notification-row b{display:block;font-size:13px}.notification-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
@media(max-width:1300px){.dashboard-widgets{grid-template-columns:repeat(2,minmax(0,1fr))}.approved-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-layout{grid-template-columns:260px minmax(0,1fr)}.proposal-side{grid-column:1/-1}}
@media(max-width:1050px){.dashboard-primary{grid-template-columns:1fr}.dashboard-widgets{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.dashboard-widgets,.approved-kpis{grid-template-columns:1fr}.nav-projects{margin-left:30px}.sidebar{position:fixed}.proposal-layout{grid-template-columns:1fr}}

/* Candidate 02 UAT FIX01 — Toàn cảnh lịch và màu nhóm Master Plan */
.shared-calendar-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}.shared-calendar-toolbar select{min-width:120px}.year-project-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.year-project-overview button{border:1px solid var(--border);background:#fff;border-radius:12px;padding:14px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;text-align:left;gap:10px}.year-project-overview button:hover{border-color:#bba0a7;box-shadow:0 4px 14px rgba(79,41,51,.08)}.month-number{width:38px;height:38px;border-radius:10px;background:#f5edef;display:grid;place-items:center;color:#7b4f5b;font-weight:800}.year-project-overview small{display:block;color:var(--muted);margin-top:3px}.shared-month-calendar .calendar-event-btn{display:block;width:100%;border:0;border-left:3px solid #9a6b78;background:#f8f3f5;border-radius:7px;padding:6px;text-align:left;margin-top:5px}.shared-month-calendar .calendar-event-btn span,.shared-month-calendar .calendar-event-btn small{display:block;font-size:11px}.tree-row.group-vendor{background:#fbf4e8}.tree-row.group-decor{background:#f4effc}.tree-row.group-guests{background:#edf5ff}.tree-row.group-program{background:#fff0e8}.tree-row.group-styling{background:#fdeff4}.tree-row.group-production{background:#eef8f0}.tree-row.group-event{background:#fff8df}.tree-row.group-root{background:#f5f5f5}.tree-row[class*="group-"] .tree-title-copy b{font-weight:800}.project-event-editor{display:grid;gap:10px}.project-event-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fafafa}.form-error{color:var(--danger);font-size:13px;min-height:18px}@media(max-width:1100px){.year-project-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.project-event-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.year-project-overview,.project-event-row{grid-template-columns:1fr}}

/* APP_EXT_SCOPE_02 — phạm vi hợp nhất 08/2026 */
.calendar-month-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 12px}.calendar-month-head b{display:block;font-size:18px}.calendar-month-head>div>span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.calendar-legend{display:flex;gap:14px;flex-wrap:wrap}.calendar-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.calendar-legend i{width:9px;height:9px;border-radius:3px}.calendar-legend .decor{background:#b26d7a}.calendar-legend .planner{background:#2f80ed}
.month-calendar{width:100%;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#f6f8fb;border-bottom:1px solid var(--border)}.calendar-weekdays>div{padding:10px 7px;text-align:center;font-size:11px;font-weight:700;color:#697586;border-right:1px solid var(--border)}.calendar-weekdays>div:last-child{border-right:0}.calendar-cell{min-width:0;min-height:126px;padding:7px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;overflow:hidden}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.blank{background:#fafbfc}.calendar-day{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:4px}.calendar-day b{font-size:12px}.calendar-day span{font-size:9px;color:var(--muted)}.calendar-events{display:grid;gap:4px}.shared-month-calendar .calendar-event-btn{display:block;width:100%;max-width:100%;min-width:0;border:0;border-left:3px solid #9a6b78;background:#f8f3f5;border-radius:6px;padding:5px 6px;text-align:left;margin:0;overflow:hidden}.shared-month-calendar .calendar-event-btn b,.shared-month-calendar .calendar-event-btn span,.shared-month-calendar .calendar-event-btn small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shared-month-calendar .calendar-event-btn b{font-size:10px}.shared-month-calendar .calendar-event-btn span{font-size:10px;margin-top:1px}.shared-month-calendar .calendar-event-btn small{font-size:9px;color:var(--muted);margin-top:2px}.calendar-more{border:0;background:#eef4fc;color:#286ec4;border-radius:6px;padding:5px 7px;font-size:10px;font-weight:700;width:100%}
.project-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.project-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:750;letter-spacing:.025em;background:#edf2f8;color:#516074}.project-badge.decor{background:#f9edf0;color:#8b5260}.project-badge.planner{background:#eaf3ff;color:#286ec4}.project-badge.source{background:#eef7f2;color:#39725a}.project-badge.lead{background:#fff5e7;color:#91611c}
.internal-budget-list{display:grid;gap:9px}.internal-budget-list article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.2fr) auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:11px;padding:11px 12px;background:#fff}.internal-budget-list article small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.budget-team{display:flex;gap:8px;flex-wrap:wrap}.budget-team span{background:#f6f8fb;border-radius:8px;padding:6px 8px;font-size:10px;color:var(--muted)}.budget-team b{display:block;color:var(--text);font-size:12px;margin-top:2px}.budget-evaluations{display:grid;gap:5px;margin-top:8px}.budget-eval{display:grid;grid-template-columns:78px 110px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;background:#f8fafc;font-size:11px}.price-snapshot-list{display:grid;gap:6px;margin-top:9px}.price-snapshot{display:grid;grid-template-columns:minmax(160px,1fr) 70px 110px 120px;gap:8px;padding:7px 8px;background:#f7f9fc;border-radius:8px;font-size:11px}.price-snapshot b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.readiness-list{display:grid;gap:8px}.readiness-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:9px}.readiness-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f1f3f6;color:#8b94a2;font-weight:800}.readiness-icon.done{background:#e9f8ee;color:#238a47}.readiness-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.intake-card{border:1px solid var(--border);border-left:4px solid var(--warning);border-radius:12px;padding:14px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.intake-card h3{margin:0 0 5px;font-size:15px}.intake-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.intake-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.money-value{font-size:clamp(18px,2vw,28px)!important;white-space:nowrap}.money-input-wrap{position:relative}.money-preview{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.scope-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scope-panel{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.scope-panel summary{list-style:none;cursor:pointer;padding:13px 14px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.scope-panel summary::-webkit-details-marker{display:none}.scope-panel[open] summary{border-bottom:1px solid var(--border)}.scope-panel-body{padding:13px 14px}.scope-count{font-size:10px;color:var(--muted);font-weight:500}
.flower-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.flower-status-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff}.flower-status-card b{display:block;font-size:12px}.flower-status-card small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.design-version-list{display:grid;gap:7px;margin-top:8px}.design-version-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:8px;background:#f7f9fc;border-radius:8px;font-size:11px}
.alternating-master .tree-row[data-group-index="0"],.alternating-master .tree-row[data-group-index="2"],.alternating-master .tree-row[data-group-index="4"],.alternating-master .tree-row[data-group-index="6"]{background:#f6f2ed}.alternating-master .tree-row[data-group-index="1"],.alternating-master .tree-row[data-group-index="3"],.alternating-master .tree-row[data-group-index="5"]{background:#edf4fb}
@media(max-width:1150px){.calendar-cell{min-height:108px}.internal-budget-list article{grid-template-columns:1fr}.budget-eval{grid-template-columns:70px 100px 1fr}.budget-eval>*:last-child{grid-column:1/-1}.scope-panel-grid{grid-template-columns:1fr}.flower-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.calendar-weekdays>div{font-size:9px;padding:8px 2px}.calendar-cell{min-height:90px;padding:4px}.shared-month-calendar .calendar-event-btn small{display:none}.calendar-month-head{align-items:flex-start;flex-direction:column}.price-snapshot{grid-template-columns:1fr 60px}.price-snapshot>*:nth-child(n+3){display:none}.flower-status-grid{grid-template-columns:1fr}}

/* APP_EXT_LINK_CORE_03 */
.link-core-note{padding:14px 16px;border:1px solid #b8d9ce;background:#eef9f5;border-radius:14px;margin-bottom:16px;color:#23483d;line-height:1.55}.link-core-badge{font-size:11px;font-weight:800;letter-spacing:.08em;padding:6px 9px;border-radius:999px;background:#e5f4ef;color:#23634f}.price-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.internal-price-card{overflow:hidden}.internal-price-thumb{height:150px;background:#f2f5f4;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border)}.internal-price-thumb img{width:100%;height:100%;object-fit:cover}.internal-price-thumb svg{width:36px;height:36px;stroke:#749287;fill:none}.internal-price-value{font-size:22px;font-weight:800;margin:10px 0}.internal-price-value small{font-size:12px;font-weight:600;color:var(--muted)}.attachment-list{display:grid;gap:8px}.attachment-list>div,.attachment-history-row,.version-history-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff}.attachment-list>div>a,.attachment-history-row>span,.version-history-row>div{flex:1}.attachment-list span,.attachment-history-row small,.version-history-row small{display:block;color:var(--muted);font-size:12px}.attachment-history{display:grid;gap:10px}.attachment-history-row>div:first-child{width:52px;height:44px;display:flex;align-items:center;justify-content:center;background:#f2f5f4;border-radius:8px;overflow:hidden}.attachment-history-row img{width:100%;height:100%;object-fit:cover}.attachment-history-row svg{width:24px;height:24px;fill:none;stroke:currentColor}.version-history-row{align-items:flex-start;justify-content:space-between;margin-bottom:9px}.design-gate{padding:13px 15px;border-radius:12px;display:grid;gap:4px}.design-gate.pass{background:#eaf8f2;border:1px solid #a9dac9;color:#205e4b}.design-gate.blocked{background:#fff2ef;border:1px solid #efb4a8;color:#8a3527}.design-gate span{font-size:13px;line-height:1.45}.link-core-contract-fields{padding:14px;border:1px solid #c5ddd5;background:#f6fbf9;border-radius:14px;margin-bottom:4px}.link-core-contract-fields .form-section-title{margin:0 0 12px}.link-core-contract-fields p{font-size:12px;color:var(--muted);margin:8px 0 0}@media(max-width:760px){.price-card-grid{grid-template-columns:1fr}.attachment-history-row{align-items:flex-start;flex-wrap:wrap}}

/* Planner Package 01 — liên kết thật, nhiều buổi và Chờ tiếp nhận */
a.nav-item,a.nav-project,a.tab-btn,a.project-card{color:inherit;text-decoration:none}
a.nav-item,a.nav-project{display:flex}
a.tab-btn{display:inline-flex;align-items:center;justify-content:center}
a.project-card{cursor:pointer}
.planner-event-summary{display:grid;gap:8px;margin-top:8px}.planner-event-summary>div{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fafafa}.planner-event-summary b{font-size:13px}.planner-event-summary span{font-size:12px;color:var(--muted);text-align:right}
.intake-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.intake-facts span{padding:6px 9px;border-radius:8px;background:#f5f7fa;color:var(--muted);font-size:12px}.intake-facts b{color:var(--text)}
.planner-intake-history-title{margin-top:22px}
@media(max-width:760px){.planner-event-summary>div{display:grid}.planner-event-summary span{text-align:left}.intake-facts{display:grid;grid-template-columns:1fr}}
