:root{--blue:#1154c3;--nav:#17213b;--bg:#f6f7f9;--ink:#202532;--muted:#707786;--line:#e5e8ee;--green:#16815f;--amber:#a66a00;--red:#bc4b42;--r:12px}
*{box-sizing:border-box}body{margin:0;font:14px Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit}.app{padding-left:236px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:236px;background:var(--nav);color:#dfe6f5;padding:16px 12px;display:flex;flex-direction:column;z-index:50}.brand{height:54px;padding:0 10px;display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{width:112px}.brand span{font-size:9px;letter-spacing:.18em;color:#9caac5;border-left:1px solid #ffffff25;padding-left:12px;font-weight:900}.navlabel{font-size:9px;letter-spacing:.16em;color:#7e8ba6;font-weight:900;margin:24px 12px 8px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:8px;text-decoration:none;font-weight:700}.sidebar nav a:hover{background:#ffffff0c}.sidebar nav a.active{background:var(--blue);color:#fff}.sidebar nav i{width:20px;text-align:center;font-style:normal;color:#a9b5cb}.profile{margin-top:auto;border-top:1px solid #ffffff15;padding:15px 8px 2px;display:flex;align-items:center;gap:10px}.profile>b{width:34px;height:34px;border-radius:50%;background:var(--blue);display:grid;place-items:center;color:#fff}.profile span{display:flex;flex-direction:column;flex:1;font-size:12px;font-weight:800;min-width:0}.profile small{font-size:10px;color:#8997b3;margin-top:2px}.profile>a{text-decoration:none;color:#8997b3}.shell{min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:30}.topbar>strong{flex:1}.topactions{display:flex;gap:8px}.searchbtn,.newbtn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;text-decoration:none;font-weight:800}.newbtn{background:var(--blue);border-color:var(--blue);color:#fff}.menubtn{display:none}.wrap{width:auto;max-width:1400px;margin:0 auto;padding:34px}.eye{font-size:10px;letter-spacing:.16em;font-weight:900;color:var(--blue);margin:0 0 8px}.crumb{font-size:11px;color:var(--muted);margin-bottom:20px;display:flex;gap:7px}.crumb a{text-decoration:none}h1{font-size:32px;letter-spacing:-.035em;margin:0 0 8px}h2{font-size:18px;letter-spacing:-.02em}.lead,.meta{color:var(--muted);line-height:1.5}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:24px}.s8{grid-column:span 8}.s6{grid-column:span 6}.s4{grid-column:span 4}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:21px;box-shadow:0 1px 2px #17213b08}.card h2{margin-top:0}.projectcard{min-height:180px;display:flex;flex-direction:column}.projectcard .actions{margin-top:auto}.badge{display:inline-flex;width:max-content;border-radius:20px;padding:5px 9px;background:#eef0f4;color:#626977;font-size:9px;letter-spacing:.05em;font-weight:900}.btn{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:7px;padding:10px 13px;text-decoration:none;font-weight:800;cursor:pointer;display:inline-block}.btn.ghost,.ghost{background:#fff;color:var(--ink);border-color:var(--line)}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.file{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #f0f1f3}.file b{font-size:13px}.statushero{margin-top:22px;border-radius:var(--r);padding:21px 23px;display:flex;align-items:center;gap:16px;color:#fff;box-shadow:0 7px 20px #1154c31a}.statushero.blue{background:var(--blue)}.statushero.neutral{background:#42516c}.statushero .eye{color:#fff;opacity:.85}.statushero h2{font-size:22px;margin:3px 0 5px}.statushero p:last-child{margin:0;opacity:.9}.statusicon{width:42px;height:42px;border-radius:50%;background:#ffffff22;display:grid;place-items:center;font-size:18px;font-weight:900}.whitebtn{margin-left:auto;background:#fff;color:var(--blue);padding:10px 13px;border-radius:7px;text-decoration:none;font-weight:900}.possibility{background:var(--blue);color:#fff;border-radius:var(--r);padding:22px;display:flex;gap:17px}.possibility .eye{color:#dce8ff}.possibility h2{font-size:20px;margin:0 0 7px}.possibility p{line-height:1.5;margin:0 0 10px;opacity:.9}.possibility a{font-weight:900;text-decoration:none;border-bottom:1px solid #ffffff88}.spark{width:40px;height:40px;flex:0 0 40px;border-radius:9px;background:#ffffff20;display:grid;place-items:center}.attention{border-top:3px solid var(--blue)}.sectionhead{display:flex;justify-content:space-between;align-items:end;margin:35px 0 12px}.sectionhead h2{margin:0}.empty{padding:28px;border:1px dashed #cfd4dd;border-radius:var(--r);color:var(--muted);background:#fff}.notice{padding:13px 15px;border-radius:8px;background:#eaf1ff;color:#234f99;margin:16px 0}label{display:block;font-size:11px;font-weight:800;margin:13px 0 6px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #d7dbe3;border-radius:7px;background:#fff;font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #1154c315}textarea{min-height:95px}.upload-progress{height:5px;background:#edf0f4;border-radius:5px;overflow:hidden;margin-top:12px}.upload-progress i{display:block;height:100%;width:0;background:var(--blue)}.public{background:#fff}.publichead{height:72px;display:flex;align-items:center;padding:0 5vw;border-bottom:1px solid var(--line)}.publichead a{display:flex;align-items:center;gap:12px;text-decoration:none}.publichead img{width:120px}.publichead span{font-size:9px;letter-spacing:.16em;color:var(--muted);font-weight:900;border-left:1px solid var(--line);padding-left:12px}.publicwrap{width:min(1100px,90vw);margin:60px auto}.login-grid{align-items:stretch}.login-intro{background:var(--blue);color:#fff;border-radius:var(--r);padding:45px}.login-intro .eye,.login-intro .lead{color:#fff}.login-intro h1{font-size:48px;line-height:1;letter-spacing:-.05em}.delivery-card{background:var(--blue);color:#fff;border-radius:var(--r);padding:26px}.delivery-card .eye{color:#fff}
@media(max-width:800px){.app{padding-left:0}.sidebar{transform:translateX(-100%);transition:.2s;width:260px}.sidebar.open{transform:none}.menubtn{display:block;border:0;background:transparent;font-size:20px;margin-right:12px}.topbar{height:60px;padding:0 16px}.searchbtn{display:none}.wrap{padding:20px 15px 55px}.s8,.s6,.s4{grid-column:span 12}.statushero{align-items:flex-start}.whitebtn{display:none}.file{align-items:flex-start;flex-direction:column}.actions,.actions form,.btn{width:100%}.btn{text-align:center;min-height:44px}.login-intro h1{font-size:38px}}
/* 2.0.1 Safe Publishing — additive controls only; locked 2.0 visual baseline */
.filehead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.filehead h2{margin-bottom:4px}
.filemain{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.visibility{width:max-content;font-size:8px;letter-spacing:.08em;font-weight:900;border-radius:12px;padding:4px 7px}.visibility.live{background:#e8f7f1;color:#16815f}.visibility.private{background:#fff4d9;color:#986100}
.privatefile{background:#fffdf7;margin:0 -10px;padding:14px 10px;border-radius:8px}.filemenu{position:relative}.filemenu>summary{list-style:none;width:38px;height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;display:grid;place-items:center;font-weight:900;cursor:pointer}.filemenu>summary::-webkit-details-marker{display:none}.filemenu-pop{position:absolute;right:0;top:44px;width:235px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px;box-shadow:0 14px 35px #17213b1c;z-index:20}.filemenu-pop form{margin:0}.filemenu-pop button{width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:6px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.filemenu-pop button:hover{background:#f5f7fa}.filemenu-pop button.danger{color:#b23d35}.renameform{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 0}.renameform input{font-size:11px;padding:7px;margin-bottom:3px}.trash{margin-top:18px;border-top:1px solid var(--line);padding-top:13px}.trash>summary{cursor:pointer;font-weight:800;font-size:12px;color:var(--muted)}.trash>summary span{background:#eef0f4;padding:2px 6px;border-radius:10px}.trashrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f0f1f3}.trashrow>div{flex:1}.trashrow small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:800px){.filemenu-pop{position:fixed;left:15px;right:15px;bottom:18px;top:auto;width:auto}.trashrow{align-items:flex-start;flex-direction:column}.trashrow form,.trashrow .btn{width:100%}}

.signout-link{margin:8px 8px 0;padding:9px 10px;border-radius:7px;color:#aebbd2;text-decoration:none;font-size:11px;font-weight:800;display:flex;gap:8px;align-items:center}.signout-link:hover{background:#ffffff0c;color:#fff}
.projectcard{min-height:145px!important}.projectcard .lead,.projectcard .meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 2.0.3 Email Notifications — additive only; production design remains locked */
.filemenu-pop button.notifyaction{color:#1154c3;font-weight:800}
.notificationlog{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.notificationlog summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--ink)}
.notificationlog summary span{background:#eef3fb;color:#1154c3;border-radius:20px;padding:2px 7px;margin-left:5px}
.notifyrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.notifyrow small{display:block;color:var(--muted);margin-top:3px}

/* 2.0.3.1 refinement */
#version-wrap{margin-top:12px}.optional{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.version-help{margin-top:5px}

/* 2.0.4 Internal QA Gate — additive; preserves locked 2.0 visual baseline */
.qabadge{width:max-content;font-size:8px;letter-spacing:.08em;font-weight:900;border-radius:12px;padding:4px 7px;margin-top:2px}.qabadge.pending{background:#eef0f4;color:#626977}.qabadge.pass{background:#e8f7f1;color:#16815f}.qabadge.fail{background:#fdecea;color:#a33b34}.filemenu-pop button.qarequired{color:#8b6b23;background:#fffaf0;cursor:not-allowed}.qapanel{margin:-1px 0 10px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.qapanel>summary{cursor:pointer;padding:11px 13px;display:flex;justify-content:space-between;gap:12px;align-items:center;list-style:none;font-size:11px}.qapanel>summary::-webkit-details-marker{display:none}.qapanel>summary span{font-weight:900;color:var(--ink)}.qapanel>summary small{color:var(--muted)}.qabody{padding:0 13px 14px;border-top:1px solid var(--line)}.qahistory{padding:12px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.qahistory b{font-size:10px;letter-spacing:.06em}.qahistory span,.qahistory p{font-size:11px;color:var(--muted);margin:0;line-height:1.5}.qaitems{margin:10px 0}.qacheck{display:flex;gap:9px;align-items:flex-start;margin:0;padding:8px 0;border-bottom:1px solid #edf0f3;font-size:12px;font-weight:600}.qacheck input{width:16px;height:16px;margin:0;flex:0 0 16px}.qacheck span{line-height:1.35}.qapassbox{margin-top:13px;border-radius:8px;background:#e8f7f1;color:#11684e;padding:13px;display:flex;flex-direction:column;gap:3px}.qapassbox b{font-size:11px;letter-spacing:.06em}.qapassbox span{font-size:11px}.qaform textarea{min-height:75px}
@media(max-width:800px){.qapanel>summary{align-items:flex-start;flex-direction:column;gap:3px}}

/* 2.0.4.1 — admin-only client activity */
.clientactivitysummary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 8px}.clientactivitysummary>div{padding:13px 14px;border:1px solid var(--line,#e7eaf0);border-radius:12px;background:rgba(17,84,195,.035)}.clientactivitysummary small{display:block;font-size:10px;letter-spacing:.09em;opacity:.62;margin-bottom:5px}.clientactivitysummary b{font-size:13px;font-weight:650}@media(max-width:680px){.clientactivitysummary{grid-template-columns:1fr}}


/* 2.0.4.2 — show submitted client comments to admins; keep the 2.0 visual system */
.feedbackhistory{margin-top:18px}.feedbackhistory-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}.feedbackhistory-head h2{margin:0 0 4px}.feedbackhistory-head .meta{margin:0}.feedbackentry{padding:15px 0;border-top:1px solid var(--line)}.feedbackentry-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px}.feedbackdecision{font-size:8px;letter-spacing:.08em;font-weight:900;border-radius:12px;padding:4px 7px}.feedbackdecision.changes{background:#fff4d9;color:#986100}.feedbackdecision.approved{background:#e8f7f1;color:#16815f}.feedbackfile{margin:9px 0 0;color:var(--muted);font-size:11px}.feedbackfile strong{color:var(--ink);font-weight:700}.feedbackmessage{margin-top:8px;padding:12px 14px;background:#f7f8fa;border:1px solid #edf0f3;border-radius:8px;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.feedbackmessage .meta{font-size:12px}.feedbackhistory>.empty{margin-top:12px}
@media(max-width:800px){.feedbackhistory-head{align-items:flex-start;flex-direction:column;gap:8px}.feedbackentry-meta{align-items:flex-start;flex-direction:column;gap:5px}}
