:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#152536;background:#f4f7fa;font-synthesis:none;--navy:#102135;--navy2:#17324b;--blue:#00a0e3;--blue2:#1597d4;--line:#dce5ec;--muted:#65778a;--shadow:0 18px 55px rgba(16,33,53,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(180deg,var(--navy),#0b1724);color:#fff;z-index:30;padding:20px 14px 14px;display:flex;flex-direction:column;transition:.25s}.sidebar.collapsed{width:82px}.brand-row{display:flex;align-items:center;gap:11px;min-height:54px;padding:0 8px 16px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#23c4ff,var(--blue));display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-1px;box-shadow:0 8px 26px #00a0e347;flex:none}.brand-row strong,.login-brand strong{display:block;font-size:15px}.brand-row span,.login-brand span{display:block;color:#aabdd0;font-size:12px;margin-top:2px}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:12px;min-height:46px;color:#b9c8d6;text-decoration:none;border-radius:12px;padding:0 14px;font-weight:650;font-size:14px}.side-nav a:hover,.side-nav a.active{background:#00a0e324;color:#fff}.side-nav a.active{box-shadow:inset 3px 0 0 var(--blue)}.sidebar-contact{margin-top:auto;padding:14px 10px;display:grid;gap:8px;border-top:1px solid rgba(255,255,255,.09)}.sidebar-contact small{color:#8fa4b8}.sidebar-contact a{color:#dce8f1;text-decoration:none;font-size:12px;display:flex;gap:7px;align-items:center}.collapse-btn{margin:0 8px;background:none;border:0;color:#93a8bb;display:flex;gap:8px;align-items:center;cursor:pointer;padding:10px}.main{min-height:100vh;margin-left:260px;transition:.25s;display:flex;flex-direction:column}.main.wide{margin-left:82px}.topbar{height:76px;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-title span{display:block;font-weight:800}.topbar-title small{display:block;color:var(--muted);margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:10px}.icon-btn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:#fff;color:#31506b;display:grid;place-items:center;cursor:pointer;text-decoration:none}.avatar{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800}.avatar.big{width:58px;height:58px}.content-wrap{width:min(1260px,calc(100% - 48px));margin:0 auto;padding:34px 0 48px;flex:1}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.eyebrow,.mini-label{color:var(--blue2);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:850}.page-head h1{font-size:clamp(28px,3vw,42px);line-height:1.05;margin:7px 0;letter-spacing:-.035em;color:var(--navy)}.page-head p{margin:0;color:var(--muted);max-width:760px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 6px 24px #10213509}.card h2{color:var(--navy);margin:5px 0 12px;font-size:20px}.card p{color:var(--muted);line-height:1.6}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.stat-label{display:block;color:var(--muted);font-size:13px}.stat-value{display:block;font-size:38px;color:var(--navy);margin:8px 0}.stat-value.small{font-size:27px}.progress{height:8px;background:#e8f0f5;border-radius:999px;overflow:hidden}.progress span{height:100%;display:block;background:linear-gradient(90deg,var(--blue),#34c5f4);border-radius:999px}.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.two-col.lower{margin-top:16px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.text-link{color:var(--blue2);text-decoration:none;font-weight:750;display:inline-flex;gap:4px;align-items:center}.phase-track{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px;position:relative}.phase-track:before{content:"";position:absolute;height:2px;background:#dce6ed;left:10%;right:10%;top:16px}.phase-track>div{position:relative;text-align:center;color:#91a2b3}.phase-track span{position:relative;z-index:2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#e7edf2;color:#8496a7;font-size:12px;font-weight:800;border:4px solid white}.phase-track .done span{background:var(--blue);color:#fff}.phase-track .done small{color:var(--navy);font-weight:800}.phase-track small{display:block;margin-top:7px;font-size:11px}.timeline{display:grid;gap:18px}.timeline.compact{gap:14px}.timeline-row{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative}.timeline-row:not(:last-child):after{content:"";position:absolute;width:2px;background:#e2e9ef;left:6px;top:19px;bottom:-18px}.dot{width:13px;height:13px;background:#c9d7e1;border:3px solid white;outline:2px solid #c9d7e1;border-radius:50%;margin-top:5px;z-index:2}.dot.milestone{background:var(--blue);outline-color:var(--blue)}.timeline-row strong{color:var(--navy)}.timeline-row p{margin:4px 0 0;font-size:13px}.stack{display:grid;gap:10px}.notice{border:1px solid var(--line);border-radius:13px;padding:14px;display:grid;grid-template-columns:22px 1fr;gap:10px}.notice svg{color:var(--blue2)}.notice.warning svg{color:#b57700}.notice p{margin:4px 0 0;font-size:13px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.quick{display:grid;grid-template-columns:25px 1fr 16px;align-items:center;text-decoration:none;color:var(--navy);border:1px solid var(--line);border-radius:12px;padding:13px}.quick svg:first-child{color:var(--blue2)}.quick span{font-size:13px;font-weight:750}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#e7f7fd;color:#087eac;font-size:11px;font-weight:800}.pill.gray{background:#edf1f4;color:#607080}.pill.amber{background:#fff2d6;color:#926300}.pill.red{background:#ffe3e3;color:#b52323}.muted{color:var(--muted);font-size:12px}.project-hero{background:linear-gradient(135deg,var(--navy),#1b405e);color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:16px;overflow:hidden}.project-hero h2{font-size:31px;margin:10px 0}.project-hero p{color:#c7d6e2;max-width:720px;line-height:1.6}.progress-ring{width:126px;height:126px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,var(--navy2) 57%,transparent 58%),conic-gradient(var(--blue) var(--p),rgba(255,255,255,.13) 0);flex:none}.progress-ring strong{font-size:28px}.progress-ring span{font-size:10px;color:#bcd0df}.project-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.project-meta div{padding:12px;border-radius:12px;background:#f7f9fb}.project-meta span{display:block;color:var(--muted);font-size:11px}.project-meta strong{display:block;margin-top:5px}.chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef8fc;color:#176d92;border:1px solid #d6edf6;padding:8px 10px;border-radius:999px;font-size:12px;font-weight:750}.primary-btn,.secondary-btn{min-height:44px;border-radius:12px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-weight:800;cursor:pointer}.primary-btn{border:0;background:var(--blue);color:#fff}.secondary-btn{border:1px solid var(--line);background:#fff;color:var(--navy)}.fit{width:max-content}.form-card{margin-bottom:16px}.ticket-form{display:grid;gap:14px}.ticket-form label,.login-card label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#40566a}.ticket-form input,.ticket-form select,.ticket-form textarea,.login-card input,.searchbox input{width:100%;border:1px solid #ccd8e1;border-radius:11px;background:#fff;padding:11px 12px;outline:none}.ticket-form input:focus,.ticket-form select:focus,.ticket-form textarea:focus,.login-card input:focus,.searchbox:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #00a0e31a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ticket-list{display:grid}.ticket-item{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid var(--line)}.ticket-item p{margin:5px 0;font-size:13px}.ticket-item span{font-size:11px;color:var(--muted)}.ticket-tags{display:flex;gap:6px;align-items:flex-start}.empty{text-align:center;padding:54px 20px;color:#7890a4}.empty svg{color:var(--blue2)}.empty strong{display:block;color:var(--navy);margin:10px 0 5px}.empty p{margin:0}.searchbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 13px;display:flex;align-items:center;gap:8px;margin-bottom:16px}.searchbox input{border:0;box-shadow:none!important}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.article-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;text-align:left;display:flex;flex-direction:column;gap:10px;cursor:pointer;color:var(--navy);min-height:175px}.article-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.article-card>span:last-child{margin-top:auto;color:var(--blue2);display:flex;align-items:center;gap:4px;font-size:12px;font-weight:800}.article-icon{width:38px;height:38px;border-radius:11px;background:#eaf8fd;color:var(--blue2);display:grid;place-items:center}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#06121c94;z-index:60;display:grid;place-items:center;padding:20px}.modal-card{width:min(760px,100%);max-height:85vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;box-shadow:0 30px 100px #00000040}.markdown p{color:#53687a;line-height:1.65}.markdown h1,.markdown h2,.markdown h3{color:var(--navy)}.markdown h1{font-size:26px}.markdown h2{font-size:20px;margin-top:22px}.markdown h3{font-size:16px;margin-top:18px}.spacer{height:5px}.feature-icon{width:52px;height:52px;border-radius:14px;background:#e8f7fd;color:var(--blue2);display:grid;place-items:center;margin-bottom:16px}.contact-list{display:grid;gap:10px;margin-top:20px}.contact-list a{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy);font-weight:750}.schedule-card{display:grid;grid-template-columns:1.35fr 1fr;gap:28px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.schedule-notes{display:grid;gap:10px}.schedule-notes div{background:#f5f8fa;border:1px solid var(--line);border-radius:13px;padding:14px}.schedule-notes strong,.schedule-notes span{display:block}.schedule-notes span{color:var(--muted);font-size:12px;margin-top:4px}.account-box{display:flex;gap:13px;align-items:center;padding:15px;background:#f6f8fa;border-radius:14px}.account-box span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.clean-list{padding-left:18px;color:#546a7e;line-height:1.8}.login-screen{min-height:100vh;background:radial-gradient(circle at 20% 10%,rgba(0,160,227,.23),transparent 32%),linear-gradient(135deg,#0c1927,#173a56);display:grid;place-items:center;padding:22px}.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 30px 90px #0000003d;display:grid;gap:15px}.login-card h1{margin:12px 0 0;color:var(--navy);font-size:31px}.login-card p{margin:0 0 4px;color:var(--muted);line-height:1.5}.login-brand{display:flex;align-items:center;gap:11px}.login-brand span{color:#75899b}.form-error{background:#ffeaea;color:#a21f1f;border-radius:10px;padding:10px;font-size:12px}footer{padding:20px 28px 28px;text-align:center;color:#7b8d9d;font-size:11px}.scrim,.mobile-only{display:none}@media (max-width:1000px){.two-col{grid-template-columns:1fr}.article-grid{grid-template-columns:1fr 1fr}.schedule-card{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat-grid .card:last-child{grid-column:1/-1}.project-hero{align-items:flex-start}.content-wrap{width:min(100% - 34px,1100px)}}@media (max-width:760px){.desktop-only{display:none!important}.mobile-only{display:grid}.sidebar{transform:translate(-105%);width:min(88vw,310px);box-shadow:0 0 80px #0000004d}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:min(88vw,310px)}.sidebar.collapsed .brand-row>div:not(.brand-mark),.sidebar.collapsed .side-nav span{display:block}.main,.main.wide{margin-left:0}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#050f1873;z-index:25}.topbar{height:66px;padding:0 15px;gap:10px}.topbar-title{flex:1}.topbar-title small,.topbar-actions .icon-btn{display:none}.content-wrap{width:calc(100% - 28px);padding:24px 0 36px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-head h1{font-size:31px}.page-head .primary-btn,.page-head .secondary-btn{width:100%}.stat-grid{grid-template-columns:1fr}.stat-grid .card:last-child{grid-column:auto}.card{padding:18px;border-radius:15px}.project-hero{padding:21px;display:grid}.progress-ring{width:104px;height:104px}.project-meta,.article-grid,.quick-grid{grid-template-columns:1fr}.ticket-item{display:grid}.ticket-tags{order:-1}.form-row{grid-template-columns:1fr}.modal-wrap{padding:10px}.modal-card{padding:18px;max-height:92vh}.schedule-card{gap:18px}.button-row{display:grid}.button-row a{width:100%}.phase-track small{font-size:9px}.phase-track span{width:30px;height:30px}.project-hero h2{font-size:25px}footer{padding:15px 18px 24px}.topbar-actions .avatar{display:grid}}.ticket-button{width:100%;background:none;border:0;text-align:left;cursor:pointer;color:inherit}.ticket-button:hover{background:#f8fbfd}.ticket-thread{display:grid;gap:12px}.thread-message{border:1px solid var(--line);border-radius:14px;padding:14px}.thread-message.staff{background:#eef9fd;border-color:#ccecf8}.thread-message.client{background:#f7f9fb}.thread-message strong{color:var(--navy)}.thread-message p{margin:6px 0;color:#526a7d;line-height:1.55}.thread-message span{color:#8495a5;font-size:10px}.thread-reply{display:grid;gap:9px;margin-top:8px}.thread-reply textarea{border:1px solid #ccd8e1;border-radius:11px;padding:11px;resize:vertical;outline:none}.thread-reply textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #00a0e31a}
