/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--navy-950:#071827;--navy-900:#0b2235;--navy-800:#10334a;--navy-700:#16506a;--green-500:#58bd45;--green-600:#41a832;--blue-500:#2c83e8;--amber-500:#f2a83b;--violet-500:#8a6be8;--slate-900:#152334;--slate-700:#415369;--slate-500:#748397;--slate-300:#d9e0e8;--slate-200:#e8edf2;--slate-100:#f2f5f8;--page:#f5f7f9;--panel:#fff;--sidebar-width:266px;--radius:16px;--shadow:0 8px 30px #102a410f}*{box-sizing:border-box}html{background:var(--page)}body{background:var(--page);color:var(--slate-900);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{color:inherit}.app-shell{min-height:100vh}.sidebar{z-index:30;width:var(--sidebar-width);background:radial-gradient(circle at 10% 95%, #3daf4c21, transparent 35%), linear-gradient(180deg, var(--navy-950) 0%, #0b2535 100%);color:#fff;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:9px 0 28px #04132021}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;min-height:83px;padding:0 22px;display:flex}.brand-mark{color:#74d963;background:#58bd452b;border:1px solid #70dc5b59;border-radius:12px;flex:none;place-items:center;width:43px;height:43px;display:grid}.brand strong,.brand span{display:block}.brand strong{letter-spacing:-.025em;font-size:18px}.brand span{color:#92a8b7;letter-spacing:.035em;margin-top:3px;font-size:10.5px}.sidebar-close{margin-left:auto;color:#a9bac5!important;display:none!important}.sidebar-nav{flex:1;padding:25px 14px}.nav-label{color:#6f889a;letter-spacing:.14em;margin:0 11px 10px;font-size:10px;font-weight:700;display:block}.nav-item{color:#a9bbc6;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:13px;width:100%;padding:11px 12px;transition:background .16s,color .16s,transform .16s;display:flex;position:relative}.nav-item+.nav-item{margin-top:4px}.nav-item span{font-size:13.5px;font-weight:550}.nav-item:hover{color:#e6f0f5;background:#ffffff0e;transform:translate(1px)}.nav-item.active{color:#79dd67;background:#58bd4524}.nav-item.active:before{background:var(--green-500);content:"";border-radius:0 4px 4px 0;width:3px;height:22px;position:absolute;left:-14px}.sidebar-footer{border-top:1px solid #ffffff14;align-items:center;gap:10px;min-height:76px;padding:15px 19px;display:flex}.user-avatar{background:linear-gradient(135deg,#5ec64b,#2c8c56);border-radius:10px;flex:none;place-items:center;width:37px;height:37px;font-size:14px;font-weight:750;display:grid}.user-copy{flex:1;min-width:0}.user-copy strong,.user-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.user-copy strong{font-size:12.5px}.user-copy span{color:#8299a8;margin-top:3px;font-size:10.5px}.sidebar-footer>svg{color:#6f899a}.main-content{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{z-index:20;border-bottom:1px solid var(--slate-200);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffed;justify-content:space-between;align-items:center;gap:24px;height:74px;padding:0 30px;display:flex;position:sticky;top:0}.icon-button{background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.icon-button:hover{background:var(--slate-100)}.menu-button{display:none}.topbar-search{width:min(440px,45vw);color:var(--slate-500);align-items:center;gap:10px;display:flex}.topbar-search input{width:100%;color:var(--slate-900);background:0 0;border:0;outline:0;font-size:13px}.topbar-search input::placeholder{color:#9aa5b3}.topbar-actions{align-items:center;gap:11px;display:flex}.notification-button{color:#57697d;position:relative}.notification-dot{background:var(--green-500);border:1.5px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:9px;right:9px}.profile-chip{background:0 0;border:0;align-items:center;gap:9px;padding:4px;display:flex}.profile-chip>span{width:34px;height:34px;color:var(--green-600);background:#e8f5e6;border-radius:9px;place-items:center;font-size:13px;font-weight:750;display:grid}.profile-chip div{text-align:left}.profile-chip strong,.profile-chip small{display:block}.profile-chip strong{font-size:11.5px}.profile-chip small{color:var(--slate-500);margin-top:1px;font-size:9.5px}.profile-chip svg{color:var(--slate-500)}.page-content{width:min(100%,1510px);margin:0 auto;padding:29px 30px 44px}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--green-600);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:750}.page-heading h1{color:#13283a;letter-spacing:-.038em;margin:5px 0;font-size:clamp(24px,2.2vw,31px);line-height:1.1}.page-heading p{color:var(--slate-500);margin:0;font-size:12.5px}.heading-actions{align-items:center;gap:10px;display:flex}.project-select{border:1px solid var(--slate-200);min-width:214px;height:40px;color:var(--slate-700);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:0 11px;display:flex;box-shadow:0 3px 12px #112b4109}.project-select select{appearance:none;min-width:0;color:var(--slate-700);background:0 0;border:0;outline:0;flex:1;font-size:11.5px;font-weight:600}.primary-button,.secondary-button{border-radius:10px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 15px;font-size:11.5px;font-weight:700;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.primary-button{background:var(--green-500);color:#fff;border:0;box-shadow:0 7px 16px #41a8322e}.primary-button:hover{background:var(--green-600);transform:translateY(-1px);box-shadow:0 9px 20px #41a8323d}.secondary-button{border:1px solid var(--slate-200);color:var(--slate-700);background:#fff}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px;display:grid}.kpi-card{border-radius:var(--radius);background:var(--panel);min-height:112px;box-shadow:var(--shadow);border:1px solid #e5eaf0;align-items:center;gap:13px;padding:19px;display:flex}.kpi-icon{border-radius:13px;flex:none;place-items:center;width:45px;height:45px;display:grid}.kpi-icon.blue{color:var(--blue-500);background:#e9f3ff}.kpi-icon.green{color:var(--green-600);background:#ebf8e8}.kpi-icon.amber{color:var(--amber-500);background:#fff4e3}.kpi-icon.violet{color:var(--violet-500);background:#f0ecff}.kpi-copy{min-width:0}.kpi-copy span,.kpi-copy strong,.kpi-copy small{display:block}.kpi-copy span{color:var(--slate-500);font-size:10.5px;font-weight:600}.kpi-copy strong{color:#182c3e;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 2px;font-size:clamp(17px,1.55vw,22px);overflow:hidden}.kpi-copy small{color:#7f8e9f;font-size:9.5px}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:17px;display:grid}.panel{border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);border:1px solid #e5eaf0;overflow:hidden}.panel-header{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:15px 19px;display:flex}.panel-header h2{color:#1b2f41;letter-spacing:-.01em;margin:0;font-size:13px}.panel-header p{color:var(--slate-500);margin:4px 0 0;font-size:9.5px}.panel-header button{color:var(--green-600);background:0 0;border:0;font-size:10px;font-weight:700}.project-row{text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f4;gap:13px;width:100%;padding:15px 19px;transition:background .15s;display:flex}.project-row:last-child{border-bottom:0}.project-row:hover{background:#fbfcfd}.project-icon{width:39px;height:39px;color:var(--navy-700);background:#edf5f8;border-radius:11px;flex:none;place-items:center;display:grid}.project-main{flex:1;min-width:0}.project-title-line{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-title-line strong,.project-title-line span{display:block}.project-title-line strong{color:#243749;font-size:11px}.project-title-line span{color:#8492a1;margin-top:3px;font-size:8.8px}.status-badge{border-radius:99px;flex:none;align-items:center;gap:5px;padding:5px 8px;font-weight:700;font-size:8px!important;display:inline-flex!important}.status-badge i{border-radius:50%;width:5px;height:5px}.status-badge.success{color:#429a35;background:#edf8eb}.status-badge.success i{background:#56b848}.status-badge.warning{color:#b47516;background:#fff4e3}.status-badge.warning i{background:#eaa335}.status-badge.neutral{color:#687989;background:#eef2f5}.progress-meta{color:#778695;justify-content:space-between;margin:10px 0 5px;font-size:8.5px;display:flex}.progress-meta strong{color:#405266}.progress-track{background:#edf1f4;border-radius:9px;height:5px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--green-600), #69ca55);height:100%;display:block}.progress-track.blue span{background:var(--blue-500)}.progress-track.amber span{background:var(--amber-500)}.project-cost{color:#8995a3;justify-content:space-between;margin-top:6px;font-size:8px;display:flex}.donut-area{align-items:center;gap:clamp(18px,2.4vw,35px);padding:23px 22px 20px;display:flex}.donut{background:conic-gradient(var(--green-500) 0deg var(--percent), #e9eef2 var(--percent) 360deg);border-radius:50%;flex:none;place-items:center;width:122px;height:122px;display:grid}.donut:before{content:"";background:#fff;border-radius:50%;width:88px;height:88px;position:absolute}.donut>div{z-index:1;text-align:center;position:relative}.donut strong,.donut span{display:block}.donut strong{color:#20364a;letter-spacing:-.04em;font-size:19px}.donut span{color:var(--slate-500);margin-top:2px;font-size:8px}.donut-legend{gap:16px;display:grid}.donut-legend>div{align-items:flex-start;gap:9px;display:flex}.legend-dot{border-radius:3px;flex:none;width:8px;height:8px;margin-top:2px}.legend-dot.spent{background:var(--green-500)}.legend-dot.balance{background:#e2e8ed}.donut-legend p{color:#778695;margin:0;font-size:8.5px}.donut-legend strong{color:#2c4053;margin-top:3px;font-size:10.5px;display:block}.cost-breakdown{border-top:1px solid #edf0f4;grid-template-columns:repeat(3,1fr);display:grid}.cost-breakdown div{text-align:center;padding:13px 9px}.cost-breakdown div+div{border-left:1px solid #edf0f4}.cost-breakdown span,.cost-breakdown strong{display:block}.cost-breakdown span{color:#8492a1;font-size:7.5px}.cost-breakdown strong{color:#34495b;margin-top:4px;font-size:9.5px}.stage-list{grid-template-columns:1fr 1fr;gap:16px 25px;padding:20px;display:grid}.stage-item>div:first-child{color:#526477;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:9px;display:flex}.stage-item strong{color:#32475a}.activity-list{padding:4px 18px 9px}.activity-item{border-bottom:1px solid #edf0f4;gap:11px;padding:12px 0;display:flex}.activity-item:last-child{border-bottom:0}.activity-icon{border-radius:10px;flex:none;place-items:center;width:35px;height:35px;display:grid}.activity-icon.blue{color:var(--blue-500);background:#ebf4fd}.activity-icon.green{color:var(--green-600);background:#edf8eb}.activity-icon.amber{color:var(--amber-500);background:#fff4e5}.activity-item>div:last-child{min-width:0}.activity-item strong,.activity-item span,.activity-item small{display:block}.activity-item strong{color:#32475a;font-size:9.5px}.activity-item span{color:#778797;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:8px;overflow:hidden}.activity-item small{color:#a0aab4;margin-top:4px;font-size:7.5px}.section-placeholder{text-align:center;align-content:center;place-items:center;min-height:440px;padding:55px 24px;display:grid}.placeholder-icon{width:62px;height:62px;color:var(--green-600);background:#edf7ec;border-radius:18px;place-items:center;display:grid}.section-placeholder h2{margin:17px 0 6px;font-size:18px}.section-placeholder p{max-width:430px;color:var(--slate-500);margin:0 0 19px;font-size:12px;line-height:1.6}.mobile-nav,.sidebar-overlay{display:none}@media (width<=1100px){:root{--sidebar-width:230px}.sidebar-nav{padding-left:10px;padding-right:10px}.brand{padding:0 17px}.dashboard-grid{grid-template-columns:1.4fr .9fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.stage-list{grid-template-columns:1fr}}@media (width<=820px){:root{--sidebar-width:278px}.sidebar{transition:transform .22s;transform:translate(-105%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-close{display:grid!important}.sidebar-overlay{z-index:25;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04121e7a;border:0;display:block;position:fixed;inset:0}.main-content{margin-left:0;padding-bottom:68px}.menu-button{display:grid}.topbar{height:64px;padding:0 18px}.topbar-search{width:min(420px,65vw)}.profile-chip{display:none}.page-content{padding:22px 18px 30px}.page-heading{align-items:flex-start}.heading-actions{flex-direction:column;align-items:stretch}.dashboard-grid{grid-template-columns:1fr}.mobile-nav{z-index:22;padding:6px 7px max(6px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #dfe6eb;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #132d4114}.mobile-nav button{color:#7a8998;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:5px 2px;display:flex}.mobile-nav button span{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:7px;font-weight:650;overflow:hidden}.mobile-nav button.active{color:var(--green-600);background:#edf7eb}}@media (width<=620px){.topbar-search{flex:1;width:auto}.topbar-search input{font-size:11px}.page-heading{display:block}.page-heading p{line-height:1.5}.heading-actions{grid-template-columns:1fr auto;margin-top:18px;display:grid}.project-select{min-width:0}.primary-button{padding:0 12px}.primary-button svg{display:none}.kpi-grid{gap:10px}.kpi-card{gap:10px;min-height:102px;padding:14px}.kpi-icon{border-radius:11px;width:39px;height:39px}.kpi-copy strong{font-size:16px}.kpi-copy small{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.project-title-line{display:block}.status-badge{margin-top:6px}.project-row{padding:15px}.project-icon{display:none}.donut-area{justify-content:center}.stage-list{padding:17px}}@media (width<=390px){.page-content{padding-left:12px;padding-right:12px}.kpi-grid{grid-template-columns:1fr}.kpi-card{min-height:90px}.heading-actions{grid-template-columns:1fr}.primary-button{width:100%}.primary-button svg{display:block}.donut-area{align-items:flex-start;gap:14px;padding-left:14px;padding-right:14px}.donut{width:105px;height:105px}.donut:before{width:75px;height:75px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.loading-line{background:#e6ebef;border-radius:2px;height:2px;margin:-14px 0 14px;overflow:hidden}.loading-line span{background:var(--green-500);width:35%;height:100%;animation:1.25s ease-in-out infinite loading-slide;display:block}@keyframes loading-slide{0%{transform:translate(-110%)}to{transform:translate(390%)}}.module-stack{gap:16px;display:grid}.section-top{justify-content:space-between;align-items:center;gap:18px;display:flex}.section-top h2,.panel-title-row h2{color:#1b2f41;letter-spacing:-.02em;margin:0;font-size:15px}.section-top p,.panel-title-row p{color:var(--slate-500);margin:4px 0 0;font-size:10px}.module-panel>.section-top{border-bottom:1px solid #edf0f4;padding:17px 19px}.module-panel>.section-top .primary-button{height:36px}.portfolio-browser{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:1px solid #e3e9ee;overflow:hidden}.portfolio-toolbar{justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.portfolio-toolbar h2{color:#1b2f41;letter-spacing:-.025em;margin:4px 0 3px;font-size:17px}.portfolio-toolbar p{color:var(--slate-500);margin:0;font-size:9.5px}.portfolio-filters{background:#fafbfc;border-top:1px solid #edf0f4;grid-template-columns:minmax(220px,1fr) minmax(170px,230px);gap:11px;padding:12px 20px;display:grid}.portfolio-search,.portfolio-select{color:#8492a0;background:#fff;border:1px solid #dce3e9;border-radius:9px;align-items:center;gap:9px;height:40px;padding:0 11px;display:flex}.portfolio-search:focus-within,.portfolio-select:focus-within{border-color:#78c76b;box-shadow:0 0 0 3px #58bd451a}.portfolio-search input,.portfolio-select select{color:#31465a;background:0 0;border:0;outline:0;width:100%;font-size:10.5px}.portfolio-select select{appearance:auto}.work-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.work-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:1px solid #e3e9ee;transition:border .16s,transform .16s,box-shadow .16s;position:relative;overflow:hidden}.work-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #102a411a}.work-card.selected{border-color:#58bd45cc;box-shadow:0 8px 28px #44a43426}.work-card-select{text-align:left;background:#fff;border:0;width:100%;padding:0;display:block}.work-cover{aspect-ratio:16/9;background:#eaf0f3;position:relative;overflow:hidden}.work-cover img{object-fit:cover;width:100%;height:100%;transition:transform .24s}.work-card:hover .work-cover img{transform:scale(1.025)}.work-cover-placeholder{color:#6e8694;background:linear-gradient(135deg,#e9f1f4,#f4f8f9);align-content:center;place-items:center;gap:7px;width:100%;height:100%;display:grid}.work-cover-placeholder span{font-size:9px;font-weight:650}.work-cover .status-pill{position:absolute;top:11px;left:11px;box-shadow:0 4px 14px #0a213024}.work-card-body{padding:15px 16px 17px}.work-card h3{color:#24384b;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;margin:0 0 5px;font-size:13px;overflow:hidden}.work-card p{color:#8290a0;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:9px;overflow:hidden}.work-card .work-client{color:#596d7f;font-weight:650}.work-address{align-items:center;gap:5px;display:flex;margin-top:6px!important}.work-address svg{color:#77a36f;flex:none}.work-card-foot{color:#8491a0;justify-content:space-between;align-items:center;margin-top:10px;font-size:8.5px;display:flex}.work-card-foot strong{color:#33485b;font-size:10px}.status-pill{border-radius:99px;padding:5px 8px;font-size:8px;font-weight:700}.status-pill.success{color:#429a35;background:#edf8eb}.status-pill.warning{color:#b47516;background:#fff4e3}.status-pill.neutral{color:#607180;background:#edf1f4}.work-card-tools{z-index:3;align-items:center;gap:5px;display:flex;position:absolute;top:10px;right:10px}.work-photo-action{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#081d2bc2;border:1px solid #ffffff80;border-radius:8px;align-items:center;gap:6px;height:30px;padding:0 9px;font-size:8px;font-weight:700;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 5px 16px #0516222e}.work-photo-action:hover{background:#081d2be6}.work-photo-action.uploading{opacity:.72;cursor:wait}.work-photo-action input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.portfolio-empty{border-radius:var(--radius);color:#8493a0;text-align:center;background:#fafbfc;border:1px dashed #d7e0e6;align-content:center;place-items:center;gap:6px;min-height:180px;display:grid}.portfolio-empty strong{color:#405469;font-size:11px}.portfolio-empty span{font-size:9px}.record-actions{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.record-actions button{color:#526678;background:#fff;border:1px solid #dce3e8;border-radius:8px;place-items:center;width:30px;height:30px;transition:background .15s,border .15s,color .15s;display:grid}.record-actions button:hover{color:#3f9133;background:#f0f8ee;border-color:#a9cba3}.record-actions button.danger:hover{color:#c64b42;background:#fff1f0;border-color:#efb6b1}.work-card-tools .record-actions button{color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#081d2bc2;border-color:#ffffff73;box-shadow:0 5px 16px #0516222e}.work-card-tools .record-actions button:hover{color:#fff;background:#081d2bf0;border-color:#ffffffb3}.table-scroll,.measurement-table-wrap{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:760px}.data-table th{color:#6f7f90;letter-spacing:.045em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafb;border-bottom:1px solid #e9edf1;padding:11px 13px;font-size:8px;font-weight:750}.data-table td{color:#536577;vertical-align:middle;border-bottom:1px solid #edf0f3;padding:12px 13px;font-size:9px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfcfd}.data-table td strong,.data-table td span{display:block}.data-table td strong{color:#30465a;font-size:9.5px}.data-table td span{color:#8794a2;margin-top:3px;font-size:8px}.data-table tfoot td{color:#32485b;background:#f8fafb;border-top:1px solid #dfe6eb;border-bottom:0;font-weight:750}.money-cell{white-space:nowrap;font-weight:750;color:#20374a!important}.money-cell.positive{color:var(--green-600)!important}.inline-progress{width:108px}.inline-progress>span{font-weight:700;color:#405469!important;margin-bottom:5px!important}.inline-progress .progress-track i{border-radius:inherit;background:var(--green-500);height:100%;display:block}.inline-progress.compact{width:90px}.table-badge{border-radius:99px;width:max-content;padding:5px 8px;font-weight:700;font-size:8px!important;display:inline-flex!important}.table-badge.success{background:#edf8eb;color:#429a35!important}.table-badge.warning{background:#fff4e3;color:#b47516!important}.table-badge.neutral{background:#edf1f4;color:#678!important}.budget-chip{color:#405469;background:#f8fafb;border:1px solid #dfe6eb;border-radius:9px;padding:7px 10px;font-size:9px;font-weight:700}.panel-title-row{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:15px;min-height:66px;padding:14px 18px;display:flex}.mini-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.mini-stat{min-height:82px;box-shadow:var(--shadow);background:#fff;border:1px solid #e5eaf0;border-radius:13px;align-items:center;gap:11px;padding:14px;display:flex}.mini-stat-icon{border-radius:10px;flex:none;place-items:center;width:38px;height:38px;display:grid}.mini-stat-icon.blue{color:var(--blue-500);background:#e9f3ff}.mini-stat-icon.green{color:var(--green-600);background:#ebf8e8}.mini-stat-icon.amber{color:var(--amber-500);background:#fff4e3}.mini-stat-icon.violet{color:var(--violet-500);background:#f0ecff}.mini-stat span,.mini-stat strong{display:block}.mini-stat span{color:#7d8b9a;font-size:8.5px}.mini-stat strong{color:#273c50;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:14px;overflow:hidden}.empty-state{color:#93a0ad;text-align:center;align-content:center;place-items:center;min-height:240px;padding:30px;display:grid}.empty-state svg{color:#72bb68;margin-bottom:12px}.empty-state strong{color:#3c5063;font-size:12px}.empty-state span{max-width:390px;margin-top:5px;font-size:9.5px;line-height:1.55}.dashboard-empty{color:#81909f;text-align:center;padding:38px 20px;font-size:10px}.notice-card{color:var(--navy-700);background:#f4fafb;border:1px solid #dce9ec;border-radius:12px;align-items:center;gap:12px;padding:13px 15px;display:flex}.notice-card strong,.notice-card span{display:block}.notice-card strong{font-size:10px}.notice-card span{color:#748795;margin-top:3px;font-size:8.5px}.notice-card.warning{color:#a16c1b;background:#fff9ee;border-color:#f1dfbc}.schedule-list{padding:4px 19px 11px}.schedule-row{border-bottom:1px solid #edf0f4;grid-template-columns:34px minmax(220px,1fr) minmax(160px,.65fr) auto;align-items:center;gap:12px;padding:14px 0;display:grid}.schedule-row:last-child{border-bottom:0}.timeline-dot{color:#83919f;background:#fff;border:1px solid #dce4e9;border-radius:50%;place-items:center;width:28px;height:28px;font-size:9px;font-weight:750;display:grid}.timeline-dot.done{color:#449d37;background:#edf8eb;border-color:#9dd495}.timeline-dot.late{color:#b2771f;background:#fff5e4;border-color:#efd39f}.schedule-copy{justify-content:space-between;align-items:center;gap:14px;display:flex}.schedule-copy strong,.schedule-copy span{display:block}.schedule-copy strong{color:#33485b;font-size:10px}.schedule-copy div>span{color:#83919f;margin-top:4px;font-size:8px}.schedule-progress{min-width:150px}.diary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.diary-card{padding:18px}.diary-card header{align-items:center;gap:11px;display:flex}.diary-card header>div:nth-child(2){flex:1;min-width:0}.diary-card header h3,.diary-card header p{margin:0}.diary-card header h3{color:#30465a;font-size:11px}.diary-card header p{color:#8492a0;margin-top:3px;font-size:8px}.calendar-box{color:#489d3b;background:#eef7ed;border-radius:10px;align-content:center;place-items:center;width:43px;height:48px;display:grid}.calendar-box strong,.calendar-box span{display:block}.calendar-box strong{font-size:14px;line-height:1}.calendar-box span{text-transform:uppercase;margin-top:3px;font-size:8px;font-weight:750}.diary-meta{gap:8px;margin:15px 0 13px;display:flex}.diary-meta span{color:#667889;background:#f4f7f9;border-radius:7px;align-items:center;gap:6px;padding:6px 8px;font-size:8.5px;display:inline-flex}.diary-content{border-top:1px solid #edf0f3;padding-top:12px}.diary-content strong{color:#45596d;font-size:8.5px}.diary-content p{color:#718292;margin:4px 0 11px;font-size:9px;line-height:1.55}.diary-note{border-left:3px solid var(--green-500);color:#5f7464;background:#f4faf3;border-radius:0 7px 7px 0;padding:8px 10px;font-size:8.5px}.diary-photo-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin:14px -18px 0;display:grid;overflow:hidden}.diary-photo-grid.count-1{grid-template-columns:1fr}.diary-photo-grid.count-2{grid-template-columns:1fr 1fr}.diary-photo-grid a{background:#e7edf1;min-height:115px;display:block;overflow:hidden}.diary-photo-grid img{object-fit:cover;width:100%;height:145px;transition:transform .18s;display:block}.diary-photo-grid a:hover img{transform:scale(1.025)}.report-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.report-card{padding:20px}.report-icon{width:43px;height:43px;color:var(--green-600);background:#eaf5e8;border-radius:12px;place-items:center;display:grid}.report-card h3{color:#30465a;margin:14px 0 6px;font-size:12px}.report-card p{color:#788898;min-height:46px;margin:0 0 15px;font-size:9px;line-height:1.55}.report-card .secondary-button{width:100%}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04121e9e;place-items:center;padding:22px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-card{background:#fff;border:1px solid #fff3;border-radius:18px;width:min(680px,100%);max-height:calc(100vh - 44px);overflow:hidden;box-shadow:0 30px 90px #020d1659}.modal-card.modal-wide{width:min(1180px,100%)}.modal-card>header{border-bottom:1px solid #e8edf1;justify-content:space-between;align-items:center;padding:18px 21px;display:flex}.modal-card>header h2{color:#1f3447;letter-spacing:-.03em;margin:4px 0 0;font-size:18px}.modal-card form{flex-direction:column;max-height:calc(100vh - 120px);display:flex}.modal-body{padding:20px 21px;overflow-y:auto}.modal-card footer{background:#fafbfc;border-top:1px solid #e8edf1;justify-content:flex-end;gap:9px;padding:13px 21px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.form-field{gap:6px;display:grid}.form-field.full{grid-column:1/-1}.form-field>span{color:#536678;font-size:9px;font-weight:700}.form-field>span i{color:#dd5b4f;font-style:normal}.form-field input,.form-field select,.form-field textarea,.measurement-summary input{color:#253b4e;background:#fff;border:1px solid #dce3e9;border-radius:9px;outline:0;width:100%;padding:9px 10px;font-size:10.5px;transition:border .15s,box-shadow .15s}.form-field input,.form-field select{height:39px}.form-field textarea{resize:vertical;line-height:1.5}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.measurement-summary input:focus{border-color:#78c76b;box-shadow:0 0 0 3px #58bd451a}.image-field input[type=file]{height:auto;padding:8px}.image-field input[type=file]::file-selector-button{color:#3e9033;cursor:pointer;background:#edf7eb;border:0;border-radius:7px;margin-right:10px;padding:7px 10px;font-size:9px;font-weight:700}.image-field small{color:#83919f;font-size:8.5px;line-height:1.45}.diary-existing-photos{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.diary-existing-photos label{cursor:pointer;background:#f7f9fa;border:1px solid #dfe6eb;border-radius:10px;position:relative;overflow:hidden}.diary-existing-photos img{object-fit:cover;width:100%;height:105px;display:block}.diary-existing-photos input{accent-color:#d45148;width:16px;height:16px;position:absolute;top:8px;left:8px}.diary-existing-photos label>span{color:#87504c;text-align:center;padding:7px;font-size:8.5px;font-weight:700;display:block}.form-error{color:#b64239;background:#fff0ef;border-radius:9px;grid-column:1/-1;margin-top:12px;padding:10px 12px;font-size:9.5px}.measurement-meta{margin-bottom:18px}.measurement-table-wrap{border:1px solid #e4e9ee;border-radius:11px}.measurement-input-table{min-width:900px}.table-input{border:1px solid #dce3e9;border-radius:8px;outline:0;width:104px;height:34px;padding:0 8px;font-size:10px}.measurement-summary{grid-template-columns:repeat(5,1fr);gap:10px;margin:15px 0;display:grid}.measurement-summary>div,.measurement-summary>label{background:#f9fafb;border:1px solid #e3e8ed;border-radius:10px;align-content:center;min-height:70px;padding:10px;display:grid}.measurement-summary span{color:#7a8998;font-size:8px;display:block}.measurement-summary strong{color:#2c4356;margin-top:5px;font-size:12px;display:block}.measurement-summary input{height:32px;margin-top:5px;padding:5px 7px}.measurement-summary .due-box{background:#eff9ed;border-color:#a9dca0}.measurement-summary .due-box strong{color:#3c9631}.toast{z-index:95;color:#347b2c;background:#f3fbf1;border:1px solid #b9dfb2;border-radius:11px;align-items:center;gap:9px;padding:12px 15px;font-size:10px;font-weight:650;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 14px 36px #194a2229}.toast span{background:var(--green-500);border-radius:50%;width:8px;height:8px}@media (width<=1100px){.work-card-grid,.mini-stats-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.measurement-summary{grid-template-columns:repeat(3,1fr)}.measurement-summary .due-box{grid-column:span 2}}@media (width<=760px){.section-top{align-items:flex-start}.section-top>.primary-button,.section-top>.secondary-button{flex:none}.work-card-grid,.diary-grid{grid-template-columns:1fr}.portfolio-toolbar{align-items:flex-start}.portfolio-filters{grid-template-columns:1fr}.schedule-row{grid-template-columns:30px 1fr}.schedule-progress{grid-column:2}.schedule-row>.record-actions{grid-column:2;justify-self:end}.report-grid{grid-template-columns:1fr 1fr}.modal-backdrop{place-items:end center;padding:0}.modal-card,.modal-card.modal-wide{border-radius:18px 18px 0 0;width:100%;max-height:94vh}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.measurement-summary{grid-template-columns:1fr 1fr}.measurement-summary .due-box{grid-column:span 2}.toast{justify-content:center;bottom:78px;left:14px;right:14px}}@media (width<=520px){.module-stack>.section-top{display:block}.module-stack>.section-top .primary-button,.module-stack>.section-top .secondary-button{width:100%;margin-top:12px}.portfolio-toolbar{display:block}.portfolio-toolbar .primary-button{width:100%;margin-top:13px}.portfolio-filters{padding:12px 14px}.mini-stats-grid{grid-template-columns:1fr 1fr;gap:9px}.mini-stat{min-height:75px;padding:11px}.mini-stat strong{font-size:11.5px}.report-grid{grid-template-columns:1fr}.report-card p{min-height:0}.panel-title-row{align-items:flex-start}.budget-chip{white-space:nowrap}.diary-meta{flex-wrap:wrap}.diary-existing-photos{grid-template-columns:1fr 1fr}.measurement-summary{grid-template-columns:1fr}.measurement-summary .due-box{grid-column:auto}}@media print{.sidebar,.topbar,.mobile-nav,.heading-actions,.section-top button,.report-card button{display:none!important}.main-content{margin-left:0}.page-content{max-width:none;padding:0}.panel,.kpi-card,.mini-stat{break-inside:avoid;box-shadow:none}body{background:#fff}}
