.portal-login-shell{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.portal-login-form{padding:32px;background:#1b1d17;border:1px solid #bca0774d;border-radius:12px}.portal-demo-pill{display:inline-flex;align-items:center;border:1px solid #8f9e6d66;border-radius:99px;background:#62764b22;padding:7px 11px;color:#c2cf9c;font-size:8px;letter-spacing:.08em;white-space:nowrap}.portal-login-form h3{margin-top:23px}.portal-role-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:22px 0}.portal-role-picker legend{font-size:10px;color:#b5a189;margin-bottom:12px}.portal-role-option{position:relative;display:grid;gap:9px;border:1px solid #ffffff24;border-radius:7px;padding:18px;font-size:13px;cursor:pointer}.portal-role-option:has(input:checked){border-color:#d9b582;background:#c39c5f14}.portal-role-option input{width:14px;height:14px;accent-color:#d5ae79;margin:0}.portal-role-option small{color:#a28d73;font-size:10px;line-height:1.6}.portal-demo-account{display:grid;gap:9px;font-size:10px;color:#b4a086;margin-bottom:20px}.portal-demo-account input{width:100%;padding:14px;border:1px solid #ffffff25;background:#11140f;color:#91816d;border-radius:5px;box-sizing:border-box;font:12px Inter,sans-serif}.portal-login-form .portal-primary{width:100%;justify-content:center}.portal-login-form .page-secondary{width:100%;justify-content:center;font-size:10px;margin-top:12px;box-sizing:border-box}.portal-login-copy p{font-size:13px;line-height:1.9;color:#ab9b86}.portal-login-copy h3{font-size:25px;margin-top:22px}.portal-login-copy ul{padding-left:20px}.portal-login-copy li{font-size:12px;line-height:1.9;color:#aa9c88}.portal-banner{padding:135px 0 34px;background:radial-gradient(ellipse at 80% 10%,#99703f22,transparent 65%)}.portal-banner h1{font-size:clamp(30px,4vw,50px);margin:12px 0 15px}.portal-banner p{font-size:12px;line-height:1.8;color:#a3937b;max-width:650px}.portal-banner .page-breadcrumbs{margin-bottom:20px}.portal-workspace-section{padding:10px 0 70px}.portal-layout{display:grid;grid-template-columns:210px minmax(0,1fr);border:1px solid #ffffff21;background:#171a14;border-radius:12px;overflow:hidden;min-height:700px}.portal-sidebar{display:flex;flex-direction:column;padding:26px 15px;background:#10140f;border-right:1px solid #ffffff15}.portal-workspace-brand{font-size:20px;letter-spacing:.14em;padding:0 10px 30px;color:#e3d1b2}.portal-workspace-brand span{display:block;font-size:7px;letter-spacing:.15em;color:#8a917a;margin-top:8px}.portal-sidebar nav{display:grid;gap:5px}.portal-sidebar nav button{display:flex;align-items:center;gap:11px;border:0;border-radius:6px;background:none;color:#9b9f8c;padding:13px 12px;text-align:left;font:11px Inter,sans-serif;cursor:pointer}.portal-sidebar nav button span{color:#b0a17d;font-size:16px;width:20px}.portal-sidebar nav button[aria-current=page]{color:#e5ddb9;background:#68774830}.portal-sidebar nav button:hover{background:#ffffff08}.portal-sidebar-foot{margin-top:auto;padding:40px 10px 0;font-size:9px;line-height:1.8}.portal-sidebar-foot a{display:block;color:#ad9b7d;margin-bottom:18px}.portal-sidebar-foot button{background:none;border:0;padding:0;color:#7f846f;font-size:10px;text-decoration:underline;cursor:pointer}.portal-main{min-width:0;padding:32px}.portal-workspace-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:23px}.portal-label{font-size:8px;letter-spacing:.1em;color:#a6987a;text-transform:uppercase;line-height:1.6}.portal-workspace-top h2{font-size:clamp(23px,2.4vw,36px);line-height:1.18;letter-spacing:-.045em;margin:12px 0 0;color:#e5dfca}.portal-demo-notice{font-size:9px;line-height:1.8;padding:12px 14px;background:#9a7d3f10;border:1px solid #b49b5c2d;border-radius:5px;color:#9d987f;margin-bottom:26px}.portal-storage-warning{font-size:11px;padding:13px;border:1px solid #a16e3b;background:#a16e3b22;color:#ddb588;margin-bottom:20px}.portal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.portal-stat{padding:22px;border:1px solid #ffffff15;border-radius:8px;background:#21251c}.portal-stat>span{display:block;color:#b2af98;font-size:10px}.portal-stat>strong{display:block;font-size:36px;font-weight:500;color:#e9dcbe;margin:12px 0}.portal-stat>small{font-size:8px;color:#808b71}.portal-section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:33px 0 18px}.portal-section-head h2{font-size:17px;letter-spacing:-.02em;margin:0}.portal-section-head button{background:none;border:0;color:#c1ac7f;font-size:9px;cursor:pointer}.portal-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portal-project{padding:21px;border:1px solid #ffffff16;border-radius:8px;background:linear-gradient(135deg,#23271d,#191e16)}.portal-project h3{font-size:17px;line-height:1.35;margin:15px 0 17px;letter-spacing:-.025em;color:#e0dac3}.portal-project p{font-size:8px;line-height:1.8;color:#859077;margin:10px 0 0}.portal-status{display:inline-flex;padding:5px 8px;border-radius:4px;border:1px solid #ffffff20;font-size:8px;line-height:1.4;color:#aaa488}.portal-status.is-done{border-color:#8da96644;color:#b2c98d;background:#8da96614}.portal-status.is-review{border-color:#bc9a5f44;color:#d4b17c;background:#bc9a5f14}.portal-progress{height:4px;background:#ffffff10;overflow:hidden;border-radius:99px;margin-top:24px}.portal-progress i{display:block;height:100%;background:linear-gradient(90deg,#9f9e66,#c5c693);border-radius:inherit}.portal-activity{border:1px solid #ffffff16;border-radius:8px;padding:8px 20px;background:#1b2018}.portal-activity>div{display:flex;gap:15px;border-bottom:1px solid #ffffff0a;padding:17px 0}.portal-activity>div:last-child{border:0}.portal-activity>div>span{color:#b2bb82;font-size:17px}.portal-activity p{margin:0;font-size:11px;color:#b5b59d;line-height:1.8}.portal-activity small{display:block;font-size:8px;color:#747f69;margin-top:4px}.portal-list{display:grid;gap:12px}.portal-list-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid #ffffff16;border-radius:8px;background:#1d2219}.portal-list-row small,.portal-order>small{font-size:8px;letter-spacing:.1em;color:#8c957b}.portal-list-row h3{font-size:17px;margin:10px 0 15px;line-height:1.4}.portal-list-row p{font-size:11px;line-height:1.8;color:#a2a58d}.portal-row-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-small,.portal-primary{display:inline-flex;align-items:center;justify-content:center;padding:11px 14px;border:1px solid #a2a77a;color:#182010;background:#c5c6a1;border-radius:5px;font:500 10px Inter,sans-serif;cursor:pointer;white-space:nowrap}.portal-small.secondary{background:transparent;color:#b7b493;border-color:#797f61}.portal-small:disabled{opacity:.4;cursor:default}.portal-primary{padding:14px 18px}.portal-muted{font-size:11px;color:#999f87;line-height:1.8;margin-bottom:22px}.portal-empty{border:1px dashed #606b50;border-radius:8px;padding:30px;margin-top:20px}.portal-empty h3{font-size:20px;margin:0 0 15px}.portal-empty p{font-size:12px;color:#9da38c;line-height:1.9;margin-bottom:22px}.portal-messages{display:grid;gap:15px;margin-bottom:25px;max-height:450px;overflow:auto}.portal-message{padding:20px;border-radius:8px;background:#22291d;border:1px solid #ffffff14;max-width:90%}.portal-message.is-own{margin-left:auto;background:#313020}.portal-message>div{display:flex;gap:20px;justify-content:space-between}.portal-message strong{font-size:10px;color:#c7c3a1}.portal-message small{font-size:8px;color:#868e76}.portal-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.85;color:#b1b79e;margin-bottom:0}.portal-message-form{display:grid;gap:12px}.portal-message-form label{font-size:10px;color:#b1b396}.portal-message-form textarea{box-sizing:border-box;width:100%;min-height:100px;background:#10170e;border:1px solid #ffffff25;border-radius:6px;color:#e0dec5;padding:15px;font:12px Inter,sans-serif;resize:vertical}.portal-message-form button{justify-self:end}.portal-order{border:1px solid #ffffff19;border-radius:8px;padding:23px;background:#20261b}.portal-order a{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;padding:20px 0;border-bottom:1px solid #ffffff16}.portal-order a:last-child{border-bottom:0;padding-bottom:0}.portal-order a strong{font-size:9px;color:#b9bb86}.portal-inline-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:26px}.portal-inline-form label{display:grid;gap:8px;color:#999f87;font-size:9px;flex:1;min-width:150px}.portal-inline-form input,.portal-inline-form select,.portal-task select{background:#151c11;color:#d7d8bb;border:1px solid #ffffff25;border-radius:5px;font:11px Inter,sans-serif;padding:11px;width:100%;box-sizing:border-box}.portal-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.portal-column{background:#11180e;border:1px solid #ffffff12;border-radius:7px;padding:12px;min-height:320px}.portal-column>h3{font-size:11px;color:#b0b492;margin:5px 0 18px;display:flex;justify-content:space-between}.portal-column>h3 span{color:#697d52}.portal-task{background:#222b1b;border:1px solid #ffffff17;border-radius:5px;padding:14px;margin-bottom:11px;cursor:grab}.portal-task small{font-size:7px;line-height:1.5;color:#8a9877}.portal-task h4{font-size:12px;line-height:1.5;margin:10px 0 18px;color:#ced5b2}.portal-task label{font-size:7px}.portal-task select{margin-top:6px;font-size:9px;padding:8px}.portal-new-project{padding:20px;border:1px dashed #626a4e;border-radius:7px;margin-bottom:25px}.portal-new-project summary{font-size:12px;color:#c5bd94;cursor:pointer}.portal-new-project form{margin:22px 0 0}.portal-avatar{width:42px;height:42px;display:grid;place-items:center;background:#a0ad7322;border:1px solid #a0ad7344;border-radius:50%;color:#c9d4a6;font-size:22px}.portal-reset{margin-top:35px}.portal-reset button{background:none;border:0;color:#747e62;font-size:9px;text-decoration:underline;cursor:pointer}.portal-action-status{font-size:11px;line-height:1.8;color:#b6c28f}.portal-gate{border:1px solid #7b805f66;border-radius:12px;padding:50px;background:#1a2016;max-width:700px;margin:auto}.portal-gate h2{font-size:35px;line-height:1.2;letter-spacing:-.04em;margin:25px 0}.portal-gate p{font-size:13px;line-height:1.9;color:#a3a98e;margin-bottom:27px}.portal-gate>a{display:block;margin-top:22px;font-size:11px;color:#a2a384;text-decoration:underline}.portal-invoice h3{font-size:22px;margin:25px 0 12px}.portal-invoice p{font-size:12px;line-height:1.85;color:#b3a58e}.portal-invoice-total{display:flex;justify-content:space-between;border-top:1px solid #ffffff30;margin:25px 0;padding-top:20px}.portal-invoice-total strong{font-size:25px}.portal-storage-warning[hidden]{display:none}.portal-layout button:focus-visible,.portal-layout a:focus-visible,.portal-layout select:focus-visible,.portal-layout input:focus-visible,.portal-layout textarea:focus-visible,.portal-login-form input:focus-visible{outline:2px solid #d5bd85;outline-offset:3px}
@media(max-width:1100px){.portal-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-board{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-layout{grid-template-columns:180px minmax(0,1fr)}.portal-main{padding:25px}.portal-login-shell{gap:30px}}
@media(max-width:750px){.portal-login-shell{grid-template-columns:1fr}.portal-layout{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid #ffffff20;padding:18px}.portal-workspace-brand{padding:0 0 15px;font-size:17px}.portal-sidebar nav{display:flex;overflow:auto;gap:5px}.portal-sidebar nav button{white-space:nowrap;font-size:10px;padding:10px}.portal-sidebar nav button span{display:none}.portal-sidebar-foot{padding:17px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.portal-sidebar-foot a{margin:0}.portal-main{padding:23px 18px}.portal-stats{gap:8px}.portal-stat{padding:16px 12px}.portal-stat>strong{font-size:30px}.portal-stat>small{font-size:7px}.portal-stat>span{font-size:8px}.portal-list-row{display:block;padding:20px}.portal-row-actions{margin-top:20px}.portal-list-row>a,.portal-list-row>button{margin-top:15px}.portal-project-grid{grid-template-columns:1fr}.portal-message{max-width:100%}.portal-message>div{display:block}.portal-message small{display:block;margin-top:7px}.portal-order a{display:block}.portal-order a strong{display:block;margin-top:10px}.portal-workspace-top{display:block}.portal-workspace-top>.portal-demo-pill{margin-top:17px}.portal-board{grid-template-columns:1fr 1fr;gap:8px}.portal-column{padding:8px}.portal-task{padding:10px}.portal-banner{padding-top:115px}.portal-gate{padding:30px}.portal-gate h2{font-size:29px}.portal-login-form{padding:24px}}

.portal-auth-tabs{display:flex;gap:5px;padding:5px;background:#0e140e;border:1px solid #ffffff20;border-radius:8px;margin:24px 0}.portal-auth-tabs button{flex:1;border:0;border-radius:5px;background:transparent;color:#a5ac97;padding:13px 8px;cursor:pointer;font:inherit;font-size:11px}.portal-auth-tabs button[aria-pressed=true]{background:#d4bc8c;color:#171a13}.portal-auth-field{display:grid;gap:10px;margin:19px 0;font-size:11px;color:#c3c7b2}.portal-auth-field[hidden]{display:none}.portal-auth-field input{box-sizing:border-box;width:100%;min-width:0;padding:14px;background:#10170f;color:#eee8d9;border:1px solid #ffffff30;border-radius:5px;font:14px Inter,sans-serif}.portal-password-wrap{display:flex;position:relative}.portal-password-wrap input{padding-right:65px}.portal-password-wrap button{position:absolute;right:8px;top:7px;bottom:7px;background:transparent;border:0;color:#ddc08b;font:11px Inter,sans-serif;cursor:pointer}.portal-auth-hint,.portal-auth-status{font:12px/1.8 Inter,sans-serif;color:#b4bba3}.portal-auth-status{color:#e6c599;min-height:20px}.portal-auth-text{background:none;border:0;color:#d3bd98;text-decoration:underline;padding:14px;cursor:pointer}.portal-role-option:has(input:disabled){opacity:.45}

/* ---- live portal (portal-app.js) ---- */
.pa-label-text{display:block;font-size:10px;color:#b5a189;margin-bottom:8px}
.portal-auth-status[data-ok="1"]{color:#c2cf9c}
.pa-stats-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.pa-stats-4{grid-template-columns:repeat(2,1fr)}}
.pa-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pa-link{background:none;border:0;color:#d9b582;cursor:pointer;font:inherit;font-size:12px}
.pa-desc{font-size:12px;line-height:1.7;color:#b9ab98;margin:10px 0 0;white-space:pre-line}
.pa-meta{font-size:11px;color:#a28d73;margin:8px 0 0;line-height:1.6}
.pa-comment{font-size:12px;color:#d9c6a6;border-left:2px solid #d9b582;padding-left:12px;margin:12px 0 0}
.pa-comment small{color:#8f806d;margin-left:6px}
.pa-me{font-size:12px;margin:0 0 8px;color:#e8dcc8;word-break:break-all}
.pa-me small{display:block;color:#8f806d;font-size:10px;margin-top:3px}
.pa-banner{background:#5a2d2d55;border:1px solid #a4505066;color:#f0c8c8;border-radius:7px;padding:12px 16px;font-size:12px;margin-bottom:18px}
.portal-small.secondary,.portal-row-actions .secondary{background:transparent}
.portal-task .portal-row-actions{margin-top:10px}
.portal-list-row .portal-row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.portal-project .portal-row-actions{margin-top:14px;display:flex;gap:8px}
select[data-request-status]{padding:8px;background:#11140f;color:#e8dcc8;border:1px solid #ffffff25;border-radius:5px}

.pa-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid #bca0774d;border-radius:12px;background:#1b1d17;color:#e8dcc8;overflow:auto}
.pa-dialog::backdrop{background:#000000b3}
.pa-form{display:grid;gap:16px;padding:26px;margin:0}
.pa-form-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pa-form-head h3{margin:0}
.pa-x{background:none;border:0;color:#b5a189;font-size:26px;line-height:1;cursor:pointer}
.pa-intro{font-size:12px;line-height:1.7;color:#b9ab98;margin:0}
.pa-field{display:grid;gap:8px;font-size:11px;color:#b5a189}
.pa-field em{color:#7d6f5e;font-style:normal}
.pa-field small{color:#8f806d;font-size:10px}
.pa-field input,.pa-field select,.pa-field textarea{width:100%;box-sizing:border-box;padding:13px;border:1px solid #ffffff25;background:#11140f;color:#f0e6d4;border-radius:5px;font:13px Inter,sans-serif}
.pa-field input:focus,.pa-field select:focus,.pa-field textarea:focus{outline:2px solid #d9b582;outline-offset:1px}
.pa-check{display:flex;gap:10px;align-items:center;font-size:12px;color:#d9c6a6}
.pa-form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pa-danger{background:transparent;border:1px solid #a4505099;color:#f0b8b8;border-radius:99px;padding:11px 18px;font-size:11px;cursor:pointer}
.pa-error{color:#f0b8b8;font-size:12px;margin:0;min-height:0}
.pa-error:empty{display:none}
.pa-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#2a2d23;border:1px solid #bca0774d;color:#f0e6d4;padding:12px 18px;border-radius:99px;font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:9999}
.pa-toast.is-on{opacity:1;transform:translate(-50%,0)}
.pa-toast[data-bad="1"]{border-color:#a45050;color:#f5c6c6}
@media print{body>*:not(dialog){display:none!important}.pa-dialog{border:0;background:#fff;color:#000;position:static}.pa-x,.pa-form-actions{display:none}}
