:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#132436;--muted:#667587;--line:#dfe7ec;--soft-line:#edf2f5;--surface:#fff;--canvas:#f4f7f8;--blue:#0b78b7;--blue-dark:#075f92;--green:#57af45;--amber:#d99a12;--orange:#e67d19;--red:#d34242;--violet:#8057b7;--shadow:0 12px 36px #122c3e14}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px}body{color:var(--ink);background:var(--canvas);margin:0;font-family:Inter,Aptos,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit}button{color:inherit}a{color:var(--blue-dark);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;justify-content:space-between;align-items:center;min-height:84px;padding:12px clamp(18px,3vw,48px);display:flex;position:sticky;top:0}.brand,.topbar-actions,.intro-row,.toolbar,.pagination,.dialog-header,.dialog-actions{align-items:center;display:flex}.brand{gap:14px}.brand img{object-fit:contain;object-position:left center;width:116px;height:55px}.brand p,.eyebrow{color:var(--blue);letter-spacing:.11em;text-transform:uppercase;margin:0 0 2px;font-size:.75rem;font-weight:800}.brand h1{letter-spacing:-.02em;margin:0;font-size:1.24rem}.topbar-actions{gap:12px}.current-user{color:#405968;border:1px solid var(--line);background:#f8fafb;border-radius:10px;align-items:center;gap:8px;max-width:220px;padding:7px 10px;display:flex}.current-user>svg{color:var(--blue);flex:none}.current-user span{min-width:0}.current-user strong,.current-user small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.current-user strong{font-size:.78rem}.current-user small{color:var(--muted);font-size:.68rem}.hero-sync-active{color:#2c7028;background:linear-gradient(135deg,#57af4512,#57af4529);border:1px solid #bcdcb7;border-radius:10px;gap:4px;width:230px;padding:6px 10px;display:grid}.hero-sync-active-head{align-items:center;gap:6px;display:flex}.hero-sync-active strong{font-size:.72rem}.hero-sync-active small{color:#55705a;text-overflow:ellipsis;white-space:nowrap;font-size:.63rem;overflow:hidden}.hero-sync-progress{background:#57af452e;border-radius:999px;height:4px;position:relative;overflow:hidden}.hero-sync-progress span{inset-block:0;border-radius:inherit;background:linear-gradient(90deg, var(--green), #8bc87c);min-width:12%;transition:width .3s;position:absolute;left:0}.logout-button{color:#526875;border-radius:9px;align-items:center;gap:7px;padding:9px 11px;font-size:.8rem;font-weight:750;display:inline-flex}.logout-button:hover{color:#963838;background:#fdf0f0;text-decoration:none}.sync-pill{color:#496070;border:1px solid var(--line);background:#f8fafb;border-radius:999px;align-items:center;gap:8px;padding:9px 12px;font-size:.82rem;font-weight:650;display:inline-flex}.sync-pill.hero-connected{color:#2c7028;background:#eef8ec;border-color:#bcdcb7}.sync-pill.hero-checking{color:#496070}.sync-pill.hero-error{color:#963838;background:#fdf0f0;border-color:#e5bcbc}.primary-button,.ghost-button,.pagination button,.state-panel button{cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 15px;font-weight:750;transition:background .16s,border-color .16s,transform .16s;display:inline-flex}.primary-button{color:#fff;background:var(--blue);box-shadow:0 6px 16px #0b78b733}.primary-button:hover{background:var(--blue-dark);transform:translateY(-1px)}.ghost-button,.pagination button,.state-panel button{border-color:var(--line);background:#fff}.ghost-button:hover,.pagination button:hover:not(:disabled),.state-panel button:hover{background:#f8fafb;border-color:#b8c8d2}button:disabled{cursor:not-allowed;opacity:.5}.workspace{width:100%;margin:0;padding:clamp(24px,3vw,44px)}.intro-row{justify-content:space-between;gap:24px;margin-bottom:24px}.intro-row h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.65rem,2.5vw,2.35rem)}.intro-copy{color:var(--muted);margin:7px 0 0}.stats-grid{gap:12px;margin-bottom:18px;display:grid}.stats-alert-row{grid-template-columns:repeat(3,minmax(180px,240px));justify-content:end;gap:10px;display:grid}.stats-main-row{grid-template-columns:repeat(5,minmax(145px,1fr)) 116px;align-items:stretch;gap:14px;display:grid}.stat-card{min-height:104px;color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--blue);background:var(--surface);text-align:left;border-radius:14px;align-items:center;gap:14px;padding:18px;display:flex;overflow:hidden;box-shadow:0 6px 18px #1c33440d}.stat-card>svg{width:38px;height:38px;color:var(--blue);background:#e9f4fa;border-radius:11px;flex:none;padding:8px}.stat-card span{color:var(--muted);font-size:.82rem;font-weight:700;display:block}.stat-card strong{margin-top:2px;font-size:1.55rem;line-height:1.1;display:block}.stat-card.compact{min-height:70px;box-shadow:none;border-radius:12px;gap:10px;padding:11px 14px}.stat-card.compact>svg{border-radius:9px;width:32px;height:32px;padding:7px}.stat-card.compact span{font-size:.75rem}.stat-card.compact strong{font-size:1.25rem}.stat-card.compact.orange{background:#e67d1912}.stat-card.compact.red{background:#d3424212}.stat-card.compact.violet{background:#8057b712}.stat-card.completed-card{text-align:center;background:linear-gradient(145deg,#57af4512,#57af4533);border-color:#57af4559;border-left-width:1px;flex-direction:column;justify-content:center;justify-self:end;gap:6px;width:116px;min-height:104px;padding:12px}.stat-card.completed-card>svg{width:34px;height:34px;padding:7px}.stat-card.completed-card span{font-size:.7rem}.stat-card.completed-card strong{font-size:1.4rem}.stat-card.amber{border-left-color:var(--amber)}.stat-card.amber>svg{color:var(--amber);background:#fff7df}.stat-card.orange{border-left-color:var(--orange)}.stat-card.orange>svg{color:var(--orange);background:#fff0e2}.stat-card.green{border-left-color:var(--green)}.stat-card.green>svg{color:var(--green);background:#eef8ec}.stat-card.red{border-left-color:var(--red)}.stat-card.red>svg{color:var(--red);background:#fdecec}.stat-card.violet{border-left-color:var(--violet)}.stat-card.violet>svg{color:var(--violet);background:#f3eef9}.stat-card.clickable{cursor:pointer;width:100%}.stat-card.clickable:hover,.stat-card.clickable.active{transform:translateY(-1px);box-shadow:0 8px 24px #26455826}.stat-card.orange.clickable.active{background:#fff8f0;border-color:#e7a45e}.stat-card.green.clickable.active{background:#f3faf1;border-color:#9bcb92}.stat-card.red.clickable.active{background:#fff5f5;border-color:#e3a0a0}.stat-card.violet.clickable.active{background:#faf7fd;border-color:#bfa9dc}.stat-card.completed-card.green.clickable.active{background:linear-gradient(145deg,#57af4521,#57af454d)}.board-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.toolbar{border-bottom:1px solid var(--soft-line);gap:10px;padding:14px 16px}.toolbar select,.form-grid input,.form-grid select,.form-grid textarea{min-height:43px;color:var(--ink);background:#fff;border:1px solid #cdd8de;border-radius:9px;outline:none;padding:9px 11px}.toolbar select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.search-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #0b78b71f}.search-box{border:1px solid #cdd8de;border-radius:9px;flex:340px;align-items:center;gap:9px;min-height:43px;padding:0 12px;display:flex}.search-box svg{color:#7d8d98;flex:none}.search-box input{background:0 0;border:0;outline:0;width:100%}.toggle{white-space:nowrap;color:#425765;cursor:pointer;align-items:center;gap:9px;font-size:.88rem;font-weight:700;display:inline-flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle span{background:#bac7ce;border-radius:999px;width:39px;height:22px;transition:background .15s;position:relative}.toggle span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{transform:translate(17px)}.result-bar{min-height:43px;color:var(--muted);border-bottom:1px solid var(--soft-line);background:#fbfcfd;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;font-size:.88rem;display:flex}.sort-hint{color:#426678;margin-left:auto;font-weight:700}.filter-chip{color:#633d90;cursor:pointer;background:#f6f1fb;border:1px solid #d7c5eb;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:.78rem;font-weight:750;display:inline-flex}.table-scroll-controls{z-index:7;border-bottom:1px solid var(--line);background:#f7f9fa;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:7px;min-height:42px;padding:5px 9px;display:grid;position:relative;box-shadow:0 2px 5px #243b4812}.table-scroll-button{color:#315f76;cursor:pointer;background:#fff;border:1px solid #b9cbd4;border-radius:8px;place-items:center;width:36px;height:32px;padding:0;display:inline-grid}:is(.table-scroll-button:hover,.table-scroll-button:focus-visible){color:#075f92;background:#eef8fc;border-color:#7fb3ce;outline:none}.table-horizontal-scroll{scrollbar-color:#6f96aa #dce7ec;scrollbar-width:auto;overscroll-behavior-x:contain;min-width:0;height:22px;overflow:scroll hidden}.table-horizontal-scroll:focus-visible{outline-offset:1px;border-radius:5px;outline:2px solid #0b78b761}.table-horizontal-scroll::-webkit-scrollbar{height:15px}.table-horizontal-scroll::-webkit-scrollbar-track{background:#dce7ec;border-radius:999px}.table-horizontal-scroll::-webkit-scrollbar-thumb{background:#6f96aa;border:3px solid #dce7ec;border-radius:999px}.table-horizontal-scroll-inner{height:1px}.table-wrap{scrollbar-gutter:stable;overscroll-behavior:contain;min-height:340px;max-height:calc(100vh - 146px);overflow:auto}.pagination{min-height:60px;color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:9px 16px;font-size:.84rem}.pagination>div{gap:8px;display:flex}.pagination button{min-height:36px;padding:6px 11px;font-size:.8rem}table{border-collapse:separate;border-spacing:0;width:100%;min-width:4020px}th{z-index:5;color:#536774;letter-spacing:.025em;text-align:left;text-transform:uppercase;background:#f7f9fa;border-bottom:1px solid #556c7a52;border-right:1px solid #556c7a59;padding:11px 12px;font-size:.76rem;font-weight:800;position:sticky;top:0}td{vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #556c7a42;border-right:1px solid #556c7a52;max-width:260px;padding:13px 12px;font-size:.88rem}th:last-child,td:last-child{border-right:0}tbody tr{cursor:pointer}tbody tr.status-row-neuzugang td{background-color:#fff}tbody tr.status-row-vorangemeldet td{background-color:#dcedfa}tbody tr.status-row-in-bearbeitung td{background-color:#fff0a8}tbody tr.status-row-unterlagen-fehlen td{background-color:#ffd7ad}tbody tr.status-row-abgeschlossen td{background-color:#c9edc2}tbody tr.status-row-problem-storno-frist td{background-color:#f8c3c3}tbody tr.status-row-neuzugang td:first-child{border-left:4px solid #aebbc3}tbody tr.status-row-vorangemeldet td:first-child{border-left:4px solid #4a9ed3}tbody tr.status-row-in-bearbeitung td:first-child{border-left:4px solid #d8a919}tbody tr.status-row-unterlagen-fehlen td:first-child{border-left:4px solid #df781b}tbody tr.status-row-abgeschlossen td:first-child{border-left:4px solid #4d9b3f}tbody tr.status-row-problem-storno-frist td:first-child{border-left:4px solid #cf3c3c}tbody tr:hover td{background-image:linear-gradient(#14394e0a,#14394e0a)}tbody tr.review-row td:first-child{border-left:3px solid #8057b7}tbody tr.selected-row td{background-image:linear-gradient(#0b78b714,#0b78b714);box-shadow:inset 0 2px #0877b4,inset 0 -2px #0877b4}tbody tr.selected-row td:first-child{border-left-color:#0000;box-shadow:inset 3px 0 #0877b4,inset 0 2px #0877b4,inset 0 -2px #0877b4}tbody tr.selected-row td:last-child{box-shadow:inset -3px 0 #0877b4,inset 0 2px #0877b4,inset 0 -2px #0877b4}td small{color:#83909a;margin-top:4px;font-size:.75rem;display:block}.entry-date-column{white-space:nowrap;min-width:128px}.entry-date-column .entry-date-source{letter-spacing:-.01em;font-size:.68rem}.customer-column{z-index:4;background-clip:padding-box;border-right:2px solid #556c7a6b;min-width:190px;position:sticky;left:0;box-shadow:5px 0 9px #253d4a1a}thead .customer-column{z-index:8;background:#f7f9fa}tbody .customer-column{z-index:3}.project-column{min-width:215px}.status-column{min-width:220px}.commissioning-column{min-width:190px}.customer-name{min-width:155px;display:block}.address-column{min-width:220px}.address-column>span{overflow-wrap:break-word;min-width:180px;line-height:1.4;display:block}.contact-column{min-width:220px}.contact-column .contact-stack{min-width:180px}.contact-column .contact-stack span:first-child{white-space:nowrap;overflow-wrap:normal}.contact-column .contact-stack span:last-child{overflow-wrap:anywhere;line-height:1.35}.birth-date-column{white-space:nowrap;min-width:150px}.meter-column{min-width:180px}.metering-column{min-width:190px}.other-meters-column{min-width:220px;max-width:270px;line-height:1.4}.dc-hardware-column{min-width:250px;max-width:290px}.ac-hardware-column{min-width:290px;max-width:350px}.wallbox-column{min-width:260px;max-width:320px;line-height:1.4}.heat-pump-column{min-width:280px;max-width:350px}.credentials-column{min-width:240px;max-width:300px}.operator-column{min-width:210px}.mastr-column{min-width:170px}.customer-name-related{color:#46606f}.customer-group-first td{border-top:2px solid #4a6f846b}.customer-group-last td{border-bottom:2px solid #4a6f846b}.project-row-type{letter-spacing:.04em;border-radius:999px;align-items:center;padding:3px 7px;font-size:.7rem;font-weight:850;display:inline-flex}.project-row-type.pv{color:#276b2b;background:#e2f2df}.project-row-type.waep{color:#075f92;background:#e6f3f9}.mastr-not-relevant{color:#6d7b84;white-space:nowrap;background:#f4f7f8;border:1px solid #d7e0e4;border-radius:8px;align-items:center;min-height:36px;padding:6px 9px;font-size:.8rem;font-weight:750;display:inline-flex}.muted{color:#89959e}.project-stack,.contact-stack,.detail-stack,.credential-stack{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.project-chip,.operator-chip,.hero-badge,.project-type-badge{border-radius:999px;align-items:center;width:max-content;max-width:100%;padding:4px 8px;font-size:.75rem;font-weight:800;line-height:1.2;display:inline-flex}.project-chip{color:#075f92;background:#e6f3f9}.operator-chip{color:#3c5361;background:#f7f9fa;border:1px solid #dce5e9}.hero-badge{color:#33722a;background:#eaf6e7}.hero-badge.needs-review{color:#8c335f;background:#fbe9f3}.hero-review-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.release-review-button{color:#2f6f2a;cursor:pointer;background:#eff9ed;border:1px solid #93c98a;border-radius:999px;align-items:center;gap:4px;width:fit-content;padding:4px 7px;font-size:.68rem;font-weight:850;display:inline-flex}.release-review-button:hover:not(:disabled){color:#245820;background:#e0f4dc;border-color:#69ae5d}.release-review-button:disabled{cursor:wait;opacity:.65}.hero-review-reason{color:#8c335f;white-space:normal;max-width:210px;margin:0;font-size:.72rem;font-weight:650;line-height:1.35;display:block}.reminder-mail-button{color:#8b4b00;cursor:pointer;background:#fff4d8;border:1px solid #e7b75f;border-radius:7px;align-items:center;gap:5px;width:fit-content;padding:5px 8px;font-size:.7rem;font-weight:850;display:inline-flex}.reminder-mail-button:hover:not(:disabled){color:#6d3900;background:#ffe9b7;border-color:#d49625}.reminder-mail-button:disabled{cursor:wait;opacity:.65}.hero-location{background:#eff6f9b8;border:1px solid #7a99a952;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px;width:100%;max-width:205px;padding:5px 7px;display:grid}.hero-location-label{color:#477083;letter-spacing:.045em;padding-top:1px;font-size:.62rem;font-weight:850;line-height:1.35}.hero-pipelines{flex-direction:column;gap:3px;min-width:0;max-width:168px;display:flex}.hero-pipelines small{color:#536d7a;overflow-wrap:anywhere;margin:0;font-size:.7rem;font-weight:700;line-height:1.35}.project-type-badge.pv{color:#276b2b;background:#e2f2df}.project-type-badge.waep{color:#075f92;background:#e6f3f9}.project-type-badge.combined{color:#633d90;background:#f3eef9}.project-type-badge.unknown{color:#5d6972;background:#edf1f3}.detail-stack{min-width:145px}.hardware-details{min-width:210px}.detail-stack>span{line-height:1.35}.detail-stack small{color:#72818b;letter-spacing:.025em;text-transform:uppercase;margin:0 0 1px;font-size:.75rem;font-weight:800}.credential-stack{min-width:190px}.password-line{align-items:center;gap:7px;max-width:100%;display:flex}.password-line code{overflow-wrap:anywhere;color:#3d4e59;max-width:175px;font-family:Cascadia Mono,Consolas,monospace;font-size:.78rem}.reveal-button{color:#536875;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;flex:none;place-items:center;width:29px;height:29px;padding:0;display:inline-grid}.reveal-button:hover{color:var(--blue);background:#f1f8fb;border-color:#aacbdc}.status-select,.mastr-select{border:1px solid #0000;border-radius:8px;outline:none;min-height:36px;padding:6px 28px 6px 9px;font-size:.82rem;font-weight:800}.status-select{width:196px}.status-neuzugang{color:#4f5e68;background:#fff;border-color:#cad5db}.status-vorangemeldet{color:#075785;background:#d8edf9;border-color:#72b5dc}.status-in-bearbeitung{color:#684d00;background:#ffed9a;border-color:#d7ae27}.status-unterlagen-fehlen{color:#7f3f00;background:#ffd2a3;border-color:#df812e}.status-abgeschlossen{color:#235f27;background:#c5eabd;border-color:#6dad60}.status-problem-storno-frist{color:#862525;background:#f6bcbc;border-color:#d95b5b}.mastr-select{width:148px}.mastr-open{color:#765706;background:#fff5d5;border-color:#e8d38a}.mastr-done{color:#276b2b;background:#e2f2df;border-color:#badcb5}.editable-cell{padding-bottom:38px;padding-right:38px;position:relative}.notes-column{color:#475b68;min-width:220px;max-width:280px;line-height:1.4}.notes-column span{white-space:normal;display:block}.notes-column .record-hint{color:#8a5a00;background:#fff7dc;border:1px solid #e8c778;border-radius:999px;width:fit-content;margin-bottom:5px;padding:3px 7px;font-size:.68rem;font-weight:850;display:inline-flex}.icon-button{color:#526875;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;place-items:center;width:36px;height:36px;padding:0;display:inline-grid}.icon-button:hover{color:var(--blue);background:#f1f8fb;border-color:#aacbdc}.inline-edit-button{color:#526875c7;opacity:.58;background:#ffffffb8;border-color:#aacbdcb3;border-radius:6px;width:24px;height:24px;transition:opacity .15s,background .15s,border-color .15s;position:absolute;bottom:7px;right:7px}:is(.inline-edit-button:hover,.inline-edit-button:focus-visible){opacity:1}.state-panel{min-height:340px;color:var(--muted);align-content:center;place-items:center;gap:10px;display:grid}.state-panel p{margin:0}.error-panel{color:#8d3535}.empty-row{min-height:230px;color:var(--muted);justify-content:center;align-items:center;gap:9px;display:flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c1c2780;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog-panel{border:1px solid var(--line);background:#fff;border-radius:17px;width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 28px 80px #07192547}.dialog-header{z-index:2;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;gap:20px;padding:20px 22px;position:sticky;top:0}.dialog-header h2{letter-spacing:-.025em;margin:0;font-size:1.45rem}.dialog-panel form{padding:20px 22px 22px}.reminder-dialog{width:min(720px,100%)}.reminder-dialog-content{gap:16px;padding:20px 22px 22px;display:grid}.reminder-recipient{color:#184d6b;background:#f1f8fb;border:1px solid #c9e0ec;border-radius:11px;align-items:flex-start;gap:12px;padding:14px;display:flex}.reminder-recipient>svg{flex:none;margin-top:3px}.reminder-recipient span{gap:2px;display:grid}.reminder-recipient small,.reminder-meta small{color:#6a7d88;letter-spacing:.045em;text-transform:uppercase;font-size:.7rem;font-weight:850}.reminder-recipient a{font-size:.85rem}.reminder-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.reminder-meta span{border:1px solid var(--soft-line);background:#fafcfd;border-radius:9px;gap:4px;padding:11px 12px;display:grid}.reminder-meta strong{font-size:.85rem;line-height:1.35}.reminder-preview-label{color:#506371;gap:6px;font-size:.81rem;font-weight:800;display:grid}.reminder-preview-label textarea{resize:vertical;font-family:inherit;line-height:1.48}.reminder-safety-note{color:var(--muted);margin:0;font-size:.75rem;line-height:1.45}.reminder-dialog .dialog-actions{margin-top:0}.duplicate-error{color:#9f2424;background:#fff0f0;border:1px solid #dc8d8d;border-radius:11px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.9rem;font-weight:800;line-height:1.4;display:flex}.duplicate-error svg{flex:none;margin-top:1px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid label{color:#506371;gap:6px;font-size:.81rem;font-weight:750;display:grid}.form-grid .wide{grid-column:1/-1}.form-section-label{color:var(--blue-dark);border-top:1px solid var(--soft-line);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;padding:10px 0 2px;font-size:.78rem;font-weight:850}.form-grid textarea{resize:vertical}.form-grid input[readonly]{color:#45606f;background:#f4f8fa}.field-hint{color:var(--muted);font-size:.72rem;font-weight:650}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:20px}.toast{z-index:80;color:#fff;background:#173447;border-radius:11px;max-width:min(420px,100% - 48px);padding:12px 16px;font-size:.9rem;font-weight:700;position:fixed;bottom:24px;right:24px;box-shadow:0 14px 34px #0c1f2c40}@media (max-width:1180px){.stats-alert-row{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.stats-main-row{grid-template-columns:repeat(3,minmax(170px,1fr))}.toolbar{flex-wrap:wrap}.search-box{flex-basis:100%}}@media (max-width:760px){.topbar,.intro-row{align-items:flex-start}.topbar{flex-direction:column;gap:12px;position:static}.topbar-actions{justify-content:space-between;width:100%}.current-user{margin-left:auto}.current-user small,.logout-button span,.sync-pill{display:none}.topbar .onedrive-link{display:inline-flex}.workspace{padding:20px 14px}.intro-row{flex-direction:column}.stats-alert-row{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-main-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:92px;padding:14px}.stat-card.compact{min-height:68px;padding:10px}.stat-card strong{font-size:1.35rem}.toolbar select{flex:180px}.toggle{width:100%}.form-grid,.reminder-meta{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.sort-hint{width:100%;margin-left:0}.pagination{flex-direction:column;align-items:flex-start}}@media (max-width:430px){.brand img{width:96px}.brand h1{font-size:1.08rem}.stats-alert-row,.stats-main-row{grid-template-columns:1fr}.dialog-backdrop{padding:0}.dialog-panel{border:0;border-radius:0;width:100%;height:100%;max-height:none}.toast{max-width:calc(100% - 28px);bottom:14px;right:14px}}.sync-pill.onedrive-link{cursor:pointer}.sync-pill.onedrive-link:hover{color:var(--blue-dark);background:#f1f8fb;border-color:#aacbdc;text-decoration:none}.sync-pill.onedrive-connected{color:#2c7028;background:#eef8ec;border-color:#bcdcb7}.sync-pill.onedrive-disconnected{color:#765706;background:#fff7df;border-color:#e4d08b}.login-shell{background:radial-gradient(circle at top, #e8f4fa 0, var(--canvas) 46%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;width:min(460px,100%);padding:clamp(28px,6vw,46px);box-shadow:0 24px 70px #122c3e24}.login-card>img{object-fit:contain;width:150px;height:70px}.login-icon{width:52px;height:52px;color:var(--blue);background:#eaf5fa;border:1px solid #cce1ed;border-radius:15px;place-items:center;margin:22px auto 18px;display:grid}.login-card h1{letter-spacing:-.04em;margin:4px 0 10px;font-size:clamp(1.8rem,6vw,2.5rem)}.login-copy{color:var(--muted);margin:0 auto 22px}.login-button{width:100%;margin-bottom:16px}.login-button:hover{color:#fff;text-decoration:none}.login-card>small{color:var(--muted);font-size:.78rem;display:block}.onedrive-page{background:var(--canvas);min-height:100vh}.onedrive-topbar{border-bottom:1px solid var(--line);background:#fffffff5;justify-content:space-between;align-items:center;min-height:76px;padding:12px clamp(18px,3vw,48px);display:flex}.onedrive-content{width:min(1180px,100%);margin:0 auto;padding:clamp(24px,4vw,52px)}.onedrive-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}.onedrive-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,3vw,2.7rem)}.onedrive-heading p:last-child{max-width:760px;color:var(--muted);margin:8px 0 0}.onedrive-heading>svg{width:72px;height:72px;color:var(--blue);background:#eaf5fa;border:1px solid #cce1ed;border-radius:22px;padding:17px}.onedrive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.onedrive-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:24px;position:relative}.onedrive-card.centered{min-height:220px;color:var(--muted);align-content:center;place-items:center;gap:12px;display:grid}.onedrive-card h2{letter-spacing:-.02em;margin:0 0 10px;font-size:1.3rem}.onedrive-card h3{margin:0 0 10px;font-size:1rem}.card-copy{color:var(--muted)}.step-number{color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:30px;height:30px;margin-bottom:14px;font-weight:850;display:grid}.setup-steps{color:#425765;gap:10px;margin:18px 0;padding-left:22px;display:grid}.setup-links{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.onedrive-form{gap:14px;margin-top:20px;display:grid}.onedrive-form label{color:#506371;gap:6px;font-size:.84rem;font-weight:750;display:grid}.onedrive-form input{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #cdd8de;border-radius:9px;outline:none;padding:9px 11px}.onedrive-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0b78b71f}.onedrive-form input[readonly]{color:#657784;background:#f7f9fa}.device-code-panel{text-align:center;background:#f1f9ef;border:1px solid #bcdcb7;border-radius:12px;place-items:center;gap:10px;margin-top:18px;padding:18px;display:grid}.device-code-panel p{color:#425765;margin:0}.device-code-panel strong{color:#164b6a;letter-spacing:.12em;background:#fff;border-radius:8px;padding:7px 14px;font-family:Cascadia Mono,Consolas,monospace;font-size:1.7rem}.device-code-panel span{color:#50705a;align-items:center;gap:7px;font-size:.84rem;font-weight:700;display:flex}.onedrive-notice{border:1px solid;border-radius:11px;align-items:center;gap:10px;margin-bottom:18px;padding:12px 15px;font-weight:700;display:flex}.onedrive-notice.error{color:#8d3535;background:#fdf0f0;border-color:#e5bcbc}.onedrive-notice.success{color:#2c7028;background:#eef8ec;border-color:#bcdcb7}.connection-card,.rule-card{gap:18px;display:flex}.connection-card>svg,.rule-card>svg{color:var(--blue);flex:none}.connection-card dl{gap:8px;margin:16px 0 0;display:grid}.connection-card dl div{grid-template-columns:150px 1fr;gap:12px;display:grid}.connection-card dt{color:var(--muted)}.connection-card dd{overflow-wrap:anywhere;margin:0;font-weight:750}.rule-card p{color:#425765;margin:7px 0 0}.sync-card{margin-top:18px}.sync-card-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.sync-card-head p{color:var(--muted);margin:5px 0 0}.sync-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.sync-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:20px;display:grid}.sync-summary div{border:1px solid var(--soft-line);background:#f8fafb;border-radius:10px;padding:13px}.sync-summary span{color:var(--muted);font-size:.78rem;font-weight:700;display:block}.sync-summary strong{margin-top:3px;font-size:1.35rem;display:block}.onedrive-results{border-top:1px solid var(--soft-line);margin-top:18px;padding-top:16px}.onedrive-results>div{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;gap:18px;padding:9px 0;display:flex}.onedrive-results>div>span:last-child{color:#356a87;text-align:right;font-size:.86rem;font-weight:750}.onedrive-results small{color:var(--muted);margin-top:2px;display:block}.onedrive-results.unresolved>div>span:last-child{color:#945229}@media (max-width:820px){.onedrive-grid{grid-template-columns:1fr}.sync-card-head{flex-direction:column}.sync-actions{justify-content:flex-start;width:100%}.sync-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.onedrive-topbar{flex-direction:column;align-items:stretch;gap:10px}.onedrive-topbar .sync-pill{align-self:flex-start;display:inline-flex}.onedrive-content{padding:22px 14px}.onedrive-heading>svg{display:none}.onedrive-card{padding:18px}.connection-card,.rule-card{flex-direction:column}.connection-card dl div{grid-template-columns:1fr;gap:1px}.sync-actions{flex-direction:column}.sync-actions button{width:100%}.onedrive-results>div{flex-direction:column;align-items:flex-start;gap:4px}.onedrive-results>div>span:last-child{text-align:left}}.sync-pill.access-link{color:#59407b;background:#f7f3fb;border-color:#d8cbe8}.sync-pill.access-link:hover{color:#432b65;background:#f0e9f8;border-color:#bda9d7;text-decoration:none}.read-only-pill{color:#526875;background:#eef2f4}.status-select:disabled,.mastr-select:disabled{cursor:default;opacity:.8}.access-page{background:var(--canvas);min-height:100vh}.access-content{width:min(1180px,100%);margin:0 auto;padding:clamp(24px,4vw,52px)}.access-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}.access-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,3vw,2.7rem)}.access-heading p:last-child{max-width:760px;color:var(--muted);margin:8px 0 0}.access-heading>svg{color:#694792;background:#f4eff9;border:1px solid #d8cbe8;border-radius:22px;width:72px;height:72px;padding:17px}.access-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;margin-bottom:18px;display:grid}.access-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:24px}.access-card-title{align-items:flex-start;gap:12px;display:flex}.access-card-title>svg{color:var(--blue);flex:none;margin-top:2px}.access-card-title h2{letter-spacing:-.02em;margin:0;font-size:1.25rem}.access-card-title p{color:var(--muted);margin:4px 0 0}.access-form{grid-template-columns:1fr 1.4fr .8fr auto;align-items:end;gap:12px;margin-top:22px;display:grid}.access-form label{color:#506371;gap:6px;font-size:.84rem;font-weight:750;display:grid}.access-form input,.access-form select,.user-row select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #cdd8de;border-radius:9px;outline:none;padding:9px 11px}.access-form input:focus,.access-form select:focus,.user-row select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0b78b71f}.access-hint{color:#425765;background:#f1f8fb;border:1px solid #cce1ed;border-radius:11px;align-items:flex-start;gap:10px;margin-top:18px;padding:13px 14px;display:flex}.access-hint svg{color:var(--blue);flex:none;margin-top:2px}.access-hint p{margin:0}.role-guide dl{gap:0;margin:18px 0 0;display:grid}.role-guide dl div{border-top:1px solid var(--soft-line);padding:12px 0}.role-guide dt{color:#263f4f;font-weight:850}.role-guide dd{color:var(--muted);margin:3px 0 0}.user-list-card{overflow:hidden}.user-list{border:1px solid var(--line);border-radius:12px;margin-top:18px;display:grid}.user-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(240px,1fr) 180px 150px 80px;align-items:center;gap:14px;padding:13px 14px;display:grid}.user-row:last-child{border-bottom:0}.user-row.inactive{opacity:.72;background:#f7f9fa}.user-identity{align-items:center;gap:11px;min-width:0;display:flex}.user-identity>div{min-width:0}.user-identity strong,.user-identity small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.user-identity small{color:var(--muted);margin-top:2px}.user-avatar{color:#fff;background:linear-gradient(135deg, var(--blue), #694792);border-radius:11px;flex:none;place-items:center;width:38px;height:38px;font-weight:850;display:grid}.danger-button{color:#963838;cursor:pointer;background:#fdf0f0;border:1px solid #e5bcbc;border-radius:9px;min-height:40px;padding:8px 11px;font-weight:750}.danger-button:hover{background:#fae5e5;border-color:#d98e8e}.access-state{color:#7b5050;background:#f5e9e9;border-radius:999px;justify-content:center;padding:5px 8px;font-size:.75rem;font-weight:850;display:inline-flex}.access-state.active{color:#2c7028;background:#eaf6e7}@media (max-width:980px){.access-grid{grid-template-columns:1fr}.access-form{grid-template-columns:1fr 1fr}.user-row{grid-template-columns:minmax(220px,1fr) 160px}.user-row .access-state{grid-area:2/2}}@media (max-width:620px){.access-content{padding:22px 14px}.access-heading>svg{display:none}.access-card{padding:18px}.access-form,.user-row{grid-template-columns:1fr}.access-form .primary-button,.user-row button{width:100%}.user-row .access-state{grid-area:auto}}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.sync-pill.integration-connected{color:#2c7028;background:#eef8ec;border-color:#bcdcb7}.sync-pill.integration-checking{color:#496070}.sync-pill.integration-error{color:#a32929;background:#fdecec;border-color:#df9999;font-weight:850}.sync-pill.activity-button{cursor:pointer}.sync-pill.activity-button:hover{color:var(--blue-dark);background:#f1f8fb;border-color:#aacbdc}.activity-panel{width:min(780px,100%)}.activity-header-actions{align-items:center;gap:8px;display:flex}.activity-content{padding:18px 22px 22px}.activity-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.activity-item{border:1px solid var(--line);background:#fbfcfd;border-radius:11px;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:13px 14px;display:grid}.activity-icon{width:36px;height:36px;color:var(--blue);background:#eaf5fa;border-radius:10px;place-items:center;display:grid}.activity-item strong{color:#263f4f;font-size:.92rem;display:block}.activity-item p{color:var(--muted);overflow-wrap:anywhere;margin:4px 0;font-size:.82rem}.activity-item time{color:#7a8995;font-size:.74rem;font-weight:700}.activity-item.activity-error{background:#fff0f0;border-color:#df9999}.activity-item.activity-error .activity-icon{color:#a32929;background:#f9dede}.activity-item.activity-error strong{color:#a32929;font-weight:900}.activity-item.activity-error p,.activity-item.activity-error time{color:#8f3c3c}.activity-state{min-height:240px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:10px;display:grid}.activity-state-error{color:#a32929}@media (max-width:760px){.topbar-actions{justify-content:flex-start}.current-user{margin-left:0}.topbar .integration-pill,.topbar .activity-button{display:inline-flex}}@media (max-width:430px){.activity-content{padding:14px}.activity-item{grid-template-columns:32px minmax(0,1fr);padding:11px}.activity-icon{width:30px;height:30px}}.project-number-links{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.project-chip.hero-project-link{border:1px solid #b9d8e8;transition:color .16s,border-color .16s,background .16s,transform .16s}.project-chip.hero-project-link:hover{color:#064f79;background:#d8edf8;border-color:#6daecf;text-decoration:none;transform:translateY(-1px)}.project-chip.hero-project-link:focus-visible{outline-offset:2px;outline:3px solid #0b78b740}.onedrive-folder-button:focus-visible{outline-offset:2px;outline:3px solid #0b78b740}.onedrive-folder-button{color:#0877b9;background:#edf7fc;border:1px solid #b9d8e8;border-radius:8px;place-items:center;width:27px;height:27px;transition:color .16s,border-color .16s,background .16s,transform .16s;display:inline-grid}.onedrive-folder-button:hover{color:#07557f;background:#d8edf8;border-color:#6daecf;text-decoration:none;transform:translateY(-1px)}.logout-form{margin:0}.logout-form .logout-button{cursor:pointer;background:0 0;border:0}.login-form{text-align:left;gap:14px;margin:20px 0 14px;display:grid}.login-form label{color:#506371;gap:6px;font-size:.86rem;font-weight:750;display:grid}.login-form input{width:100%;min-height:46px;color:var(--ink);background:#fff;border:1px solid #cdd8de;border-radius:10px;outline:none;padding:10px 12px}.login-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0b78b71f}.login-form .login-button{margin:4px 0 0}.otp-input{letter-spacing:.22em;text-align:center;font-family:Cascadia Mono,Consolas,monospace;font-size:1.25rem}.auth-message{text-align:left;border:1px solid;border-radius:10px;margin:0 0 14px;padding:11px 13px;font-size:.88rem;font-weight:700}.auth-message.error{color:#8d3535;background:#fdf0f0;border-color:#e5bcbc}.auth-message.success{color:#2c7028;background:#eef8ec;border-color:#bcdcb7}.auth-link-button{color:var(--blue-dark);cursor:pointer;background:0 0;border:0;padding:4px;font-weight:750}.auth-link-button:hover{text-decoration:underline}.auth-text-link{margin-bottom:14px;font-weight:750;display:inline-block}.password-rule{color:var(--muted);margin:-2px 0 2px;font-size:.8rem}.user-row{grid-template-columns:minmax(220px,1fr) 160px minmax(220px,auto) 150px}.user-actions{justify-content:flex-end;gap:8px;display:flex}.user-actions .ghost-button,.user-actions .danger-button{white-space:nowrap;min-height:40px}@media (max-width:1180px){.user-row{grid-template-columns:minmax(220px,1fr) 160px}.user-actions{justify-content:flex-start}.user-row .access-state{grid-area:2/2}}@media (max-width:620px){.login-card{padding:26px 20px}.user-row{grid-template-columns:1fr}.user-actions{flex-direction:column}.user-actions .ghost-button,.user-actions .danger-button{width:100%}.user-row .access-state{grid-area:auto}}.completion-celebration{z-index:120;pointer-events:none;position:fixed;inset:0;overflow:hidden}.completion-message{color:#fff;letter-spacing:.01em;white-space:nowrap;background:#0f263ae6;border:1px solid #ffffffb8;border-radius:999px;padding:12px 22px;font-size:clamp(1rem,2.2vw,1.35rem);font-weight:800;animation:2.8s both completion-message;position:absolute;top:16%;left:50%;box-shadow:0 16px 44px #0f263a3d}.completion-fireworks span{filter:drop-shadow(0 8px 18px #00000029);opacity:0;font-size:clamp(2.8rem,7vw,6rem);animation:1.15s ease-out both completion-firework;display:block;position:absolute}.completion-fireworks span:first-child{animation-delay:50ms;top:6%;left:9%}.completion-fireworks span:nth-child(2){animation-delay:.35s;top:18%;left:30%}.completion-fireworks span:nth-child(3){animation-delay:.12s;top:7%;right:9%}.completion-fireworks span:nth-child(4){animation-delay:.58s;top:25%;right:26%}.completion-fireworks span:nth-child(5){animation-delay:.88s;top:36%;left:50%}.completion-dancers{gap:clamp(18px,7vw,72px);display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.completion-character{color:#0f263a;background:#ffffffe6;border:1px solid #ffffffc2;border-radius:22px;place-items:center;gap:5px;min-width:108px;padding:13px 15px 10px;animation:.46s ease-in-out infinite alternate completion-dance;display:grid;box-shadow:0 16px 44px #0f263a3d}.completion-valentin{animation-delay:-.23s}.completion-avatar{font-size:clamp(3.4rem,8vw,5.4rem);line-height:1}.completion-character strong{letter-spacing:.04em;font-size:.82rem}@keyframes completion-firework{0%{opacity:0;transform:scale(.2)rotate(-10deg)}24%{opacity:1}72%{opacity:1;transform:scale(1)rotate(5deg)}to{opacity:0;transform:scale(1.28)rotate(10deg)}}@keyframes completion-message{0%{opacity:0;transform:translate(-50%,-14px)scale(.92)}12%,82%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-8px)scale(.96)}}@keyframes completion-dance{0%{transform:translateY(0)rotate(-5deg)}to{transform:translateY(-14px)rotate(5deg)}}@media (max-width:620px){.completion-message{top:13%}.completion-dancers{gap:14px;bottom:16px}.completion-character{min-width:88px;padding:10px 11px 8px}}@media (prefers-reduced-motion:reduce){.completion-fireworks{display:none}.completion-message,.completion-character{animation:none}}
