:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#142333;background:#edf2f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:#125e9b}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #00a7c8;outline-offset:3px}.splash{height:100vh;display:grid;place-content:center;color:#163a48;font-size:26px;font-weight:850}.splash span{color:#279a91}.auth{min-height:100vh;background:radial-gradient(circle at 50% 10%,#244b5b,#081e2d 70%);display:grid;place-items:center;padding:18px}.authcard{background:white;padding:36px;border-radius:22px;max-width:455px;width:100%;box-shadow:0 25px 60px #001a2880}.logo{display:flex;gap:12px;align-items:center;font-weight:850;font-size:21px;letter-spacing:-.6px}.logoicon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:#0d807d;color:white;font-size:21px}.authcard h1{font-size:29px;line-height:1.12;margin:34px 0 8px;letter-spacing:-1px}.sub{color:#667989;font-size:14px;line-height:1.5}.authcard .sub{margin-bottom:25px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-weight:650;color:#294257;font-size:13px}.field input,.field select,.field textarea{width:100%;background:#fff;border:1px solid #c9d6df;border-radius:10px;padding:11px 12px;min-height:42px;color:#122c3b}.field textarea{min-height:84px;resize:vertical}.field small{color:#6a7780}.btn{border:0;border-radius:10px;background:#0c817e;color:#fff;font-weight:730;min-height:39px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover:not(:disabled){background:#096967}.btn.secondary{background:#e8eff4;color:#244253}.btn.secondary:hover{background:#d9e5ec}.btn.ghost{background:transparent;color:#477181;border:1px solid #ccdae1}.btn.danger{background:#ad3543}.btn.full{width:100%}.error{margin:13px 0;padding:11px 13px;color:#9a2638;background:#fff0f1;border:1px solid #f2c9ce;border-radius:9px;font-size:14px}.success{margin:13px 0;padding:11px 13px;color:#006057;background:#e8f7f4;border:1px solid #c0dfd9;border-radius:9px;font-size:14px}.layout{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{background:#0b2231;color:#e2edf2;display:flex;flex-direction:column;padding:22px 14px;gap:22px;min-height:100vh}.sidebar .logo{padding:8px 12px}.brandtag{display:block;color:#8cb0c0;font-size:11px;font-weight:600;margin-top:3px;letter-spacing:.5px}.navlist{display:flex;flex-direction:column;gap:5px}.navitem{border:0;width:100%;padding:12px 13px;text-align:left;background:none;color:#b6cad5;border-radius:11px;display:flex;gap:11px;align-items:center;font-size:14px;font-weight:640}.navitem .ni{font-size:17px;width:22px;text-align:center}.navitem:hover:not(:disabled){background:#15394a;color:white}.navitem.active{background:#15525d;color:#efffff}.navitem:disabled{color:#66808b;opacity:.6}.sidebarbottom{margin-top:auto;padding:15px 10px;border-top:1px solid #284454;display:grid;gap:10px}.who{font-size:13px;line-height:1.4}.who b{display:block;color:white}.who small{color:#8fa9b7}.main{padding:33px min(4vw,48px);max-width:1500px;width:100%;margin:0 auto;min-width:0}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:27px}.eyebrow{color:#277a7b;font-size:12px;font-weight:830;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:7px}.top h1{font-size:clamp(25px,3vw,34px);line-height:1.18;letter-spacing:-1.1px;margin:0 0 8px}.top p{font-size:14px;color:#687e8e;margin:0}.actions{display:flex;gap:9px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat{background:#fff;border:1px solid #dfe6ec;border-radius:14px;padding:21px;box-shadow:0 2px 5px #0d2b4010}.stathead{display:flex;justify-content:space-between;align-items:center;color:#6a7b89;font-weight:660;font-size:12px}.stat .number{font-weight:850;font-size:36px;color:#142b38;letter-spacing:-1px;margin:10px 0 0}.stat small{color:#82949c;font-size:12px}.stat .bubble{font-size:22px}.panels{display:grid;grid-template-columns:1.2fr 1fr;gap:17px;align-items:start}.panel{background:white;border:1px solid #dfe8ed;border-radius:15px;box-shadow:0 3px 8px #14384c08;min-width:0;overflow:hidden}.panelhead{padding:21px 22px 15px;display:flex;justify-content:space-between;align-items:center;gap:10px}.panelhead h2{font-size:17px;letter-spacing:-.3px;margin:0}.panelbody{padding:0 21px 21px}.muted{font-size:13px;color:#758998}.count{background:#eaf0f3;color:#507080;border-radius:8px;padding:5px 9px;font-weight:740;font-size:12px}.listrow{border-top:1px solid #edf1f4;padding:14px 0;display:flex;justify-content:space-between;gap:14px;align-items:center}.listrow:first-child{border-top:0}.listinfo{min-width:0}.listinfo strong{font-size:13px;display:block;color:#233f50;word-break:break-word}.listinfo small{display:block;color:#86949f;font-size:12px;margin-top:5px}.badge{font-size:11px;padding:5px 9px;font-weight:760;border-radius:7px;display:inline-block;white-space:nowrap}.badge.yes,.badge.done{background:#e4f6ed;color:#12664c}.badge.no{background:#ffecef;color:#a33e50}.badge.wait{background:#fff5df;color:#8d650e}.badge.working{background:#e4f1ff;color:#1f6193}.searchrow{display:flex;gap:11px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:17px}.search{border:1px solid #d4e0e6;padding:12px 13px;border-radius:10px;min-width:min(370px,100%);background:#fff;flex:1}.tablewrap{overflow-x:auto}.datatable{width:100%;border-collapse:collapse;text-align:left;min-width:690px}.datatable th{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:#78909f;font-weight:790;background:#f6f9fb;border-top:1px solid #ecf0f2;border-bottom:1px solid #ecf0f2;padding:13px 17px}.datatable td{font-size:13px;color:#375263;border-bottom:1px solid #eaf0f3;padding:14px 17px;vertical-align:middle}.datatable td strong{color:#1b3547}.datatable tr:hover td{background:#fafcfd}.rowaction{border:none;background:#edf5f8;color:#246875;font-weight:750;border-radius:8px;padding:8px 10px}.rowaction:hover{background:#d3edf0}.mono{font-variant-numeric:tabular-nums}.empty{text-align:center;color:#8295a1;padding:35px 15px}.summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;border-bottom:1px solid #edf1f4;font-size:12px;color:#607987}.summary strong{font-size:18px;color:#162e3d}.modalback{position:fixed;inset:0;background:#09202bb9;display:grid;place-items:center;z-index:5;padding:18px;overflow:auto}.modal{background:#fff;border-radius:18px;width:min(570px,100%);max-height:95vh;overflow-y:auto;box-shadow:0 22px 70px #0003}.modalhead{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 10px;gap:12px}.modalhead h2{font-size:21px;letter-spacing:-.5px;margin:0}.modalmain{padding:12px 26px 26px}.modalfooter{display:flex;gap:10px;justify-content:flex-end;margin-top:23px}.close{background:none;border:0;font-size:24px;color:#6d8591}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid2 .field{margin-bottom:10px}.minitext{font-size:12px;line-height:1.5;color:#7690a0}.permissions{border:1px solid #e1eaf0;border-radius:12px;overflow:hidden;margin:10px 0 15px}.permissionrow{display:grid;grid-template-columns:1fr 170px;gap:10px;align-items:center;padding:10px 13px;border-bottom:1px solid #e9eff3}.permissionrow:last-child{border-bottom:0}.permissionrow label{font-size:12px;font-weight:750}.permissionrow select{min-height:36px;padding:7px;border:1px solid #cbdce5;border-radius:7px;background:#fff}.info{background:#eaf4f8;border:1px solid #cde7ef;border-radius:12px;padding:14px 16px;font-size:13px;color:#275365;margin-bottom:16px;line-height:1.5}.desktop-hide{display:none}.loginhelp{font-size:12px;color:#7d8991;margin-top:14px}.reporttiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.reporttiles .stat{height:100%}@media(max-width:1050px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.panels{grid-template-columns:1fr}}@media(max-width:760px){.layout{display:block}.sidebar{min-height:auto;position:sticky;top:0;z-index:2;display:block;padding:10px 14px}.sidebar .logo{display:none}.navlist{display:flex;flex-direction:row;gap:6px;overflow-x:auto;padding:0 0 2px}.navitem{white-space:nowrap;width:auto;font-size:12px;padding:9px 12px}.navitem .ni{font-size:15px;width:auto}.sidebarbottom{display:none}.main{padding:22px 14px}.top{margin-bottom:20px}.cards{gap:9px}.stat{padding:15px}.stat .number{font-size:30px}.panels{gap:12px}.panelhead{padding:18px 16px}.panelbody{padding:0 16px 17px}.tablewrap{margin-left:0;margin-right:0}.desktop-hide{display:block}.reporttiles{grid-template-columns:1fr}.modalmain{padding:12px 18px 18px}.modalhead{padding:19px 18px 10px}.grid2{grid-template-columns:1fr}.permissionrow{grid-template-columns:1fr 145px}}@media(max-width:420px){.stat{padding:12px}.stat .number{font-size:28px}.stathead{font-size:11px}.stat .bubble{font-size:17px}.permissionrow{grid-template-columns:1fr;gap:7px}.search{min-width:0}.actions{width:100%}}

.statusfilter{border:1px solid #d4e0e6;padding:11px 12px;border-radius:10px;background:#fff;color:#274556;min-height:43px}.checkfield{padding:12px 15px;margin:10px 0 15px;background:#eff7f5;border:1px solid #cfe7df;border-radius:10px}.checkfield label{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:750;color:#204e4d}.checkfield input{width:17px;height:17px;accent-color:#0b7f78}.checkfield small{display:block;margin-top:8px;color:#507873;font-size:12px}@media(max-width:760px){.statusfilter{width:100%}}

.taskrow-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.doneaction{background:#e0f3eb;color:#16664f}.mobilecards{display:none}.mobileitem{padding:15px 16px;border-bottom:1px solid #e6edf1;min-width:0}.mobileitem:last-child{border-bottom:0}.mobiletop{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.mobiletop strong{font-size:14px;max-width:68%;overflow-wrap:anywhere}.mobilemeta{color:#6b8692;font-size:12px;margin-top:9px}.mobileitem p{font-size:13px;line-height:1.45;margin:9px 0;color:#375d6b}.mobileitem small{color:#7a949f;display:block;margin-top:7px;overflow-wrap:anywhere}.mobilebottom{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:11px}.mobilebottom:empty{display:none}.mobilebottom a{font-size:12px}.mobilebottom button{margin-left:auto}@media(max-width:760px){.mobilecards{display:block}.sponsor-list .tablewrap,.task-list .tablewrap{display:none}.taskrow-actions{justify-content:flex-end}}


/* Tannenzauber V2 mobile layout: all sections visible, compact task controls. */
@media(max-width:760px){
  .sidebar{position:relative;top:auto}
  .navlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}
  .navitem{width:100%;min-width:0;white-space:nowrap;justify-content:center;gap:5px;padding:10px 5px;font-size:11px}
  .navitem .ni{font-size:15px;flex-shrink:0}
  .panels .listrow{flex-direction:column;align-items:stretch;gap:9px}
  .panels .taskrow-actions{width:100%;justify-content:space-between;flex-wrap:nowrap}
  .doneaction{font-size:12px;white-space:nowrap;padding:8px 10px;flex-shrink:0}
}


/* Tannenzauber timeline checklist */
.plan-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.plan-switch{display:flex;gap:8px;flex-wrap:wrap}
.plan-switch .selected{background:#d8ede9;color:#0e6762;box-shadow:inset 0 0 0 1px #9bcac2}
.plan-progress{display:grid;gap:7px;min-width:min(290px,100%);color:#284b59;font-size:12px}
.plan-progress progress{width:100%;height:12px;accent-color:#0c817e}
.plan-item-title{display:flex;align-items:flex-start;gap:10px;min-width:0;flex:1}
.plan-item-title strong{flex:1;max-width:none}
.plan-check{border:1px solid #abc5cc;border-radius:8px;min-width:34px;min-height:34px;background:#f3f8fa;color:#285b67;font-size:24px;line-height:1;display:inline-grid;place-items:center;flex:0 0 auto;padding:2px}
.plan-check.is-done{background:#dff2e8;color:#176850;border-color:#aad2c1}
.plan-check:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){.plan-tools{display:grid}.plan-progress{min-width:0}.plan-switch .rowaction{flex:1}.mobiletop .plan-item-title{max-width:75%;}.mobiletop .plan-item-title strong{max-width:none}.mobilebottom{flex-wrap:wrap}}


/* Simplified five-phase timeline */
.phase-intro{padding:18px 20px;background:#eef7f6;border:1px solid #cbe6e0;border-radius:15px;margin-bottom:14px;color:#27525a}
.phase-intro>strong{font-size:15px;color:#153d44}
.phase-intro p{font-size:13px;line-height:1.55;margin:8px 0 0}
.phase-intro .badge{margin:0 3px}
.phase-cards{display:grid;gap:12px;margin-top:12px}
.phase-card{background:#fff;border:1px solid #dfe8ed;border-radius:15px;overflow:hidden;box-shadow:0 2px 6px #142c3b08}
.phase-heading{border:0;background:#fff;display:flex;align-items:center;text-align:left;gap:14px;padding:18px 20px;width:100%;color:#193647}
.phase-heading:hover{background:#f8fbfb}
.phase-number{flex:0 0 auto;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;background:#127b79;font-weight:850}
.phase-heading-copy{display:grid;gap:4px;flex:1;min-width:0}
.phase-heading-copy strong{font-size:17px;overflow-wrap:anywhere}
.phase-heading-copy small{font-size:12px;color:#718896;line-height:1.4}
.phase-heading-copy .phase-next{color:#43787b;font-weight:720}
.phase-heading-right{display:flex;align-items:center;gap:12px;flex-shrink:0;color:#5a7783;font-size:20px}
.phase-details{border-top:1px solid #e8eff1;padding:0 20px 6px}
.phase-note{border-radius:10px;padding:10px 12px;background:#e8f6ec;color:#17664a;font-size:13px;font-weight:700}
.phase-task{padding:16px 0;border-bottom:1px solid #e9eff2}
.phase-task:last-child{border-bottom:0}
.phase-task-main{display:flex;gap:12px;align-items:flex-start}
.phase-task-copy{flex:1;min-width:0}
.phase-task-copy strong{color:#263e4e;font-size:14px;line-height:1.35}
.phase-task-copy p{font-size:13px;line-height:1.5;color:#527081;margin:9px 0}
.phase-task-copy small{display:block;font-size:12px;color:#637e8e;margin-top:7px;line-height:1.4}
.phase-task-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.phase-task-done .phase-task-copy>strong{text-decoration:line-through;color:#78908d}
.phase-task-main>.rowaction{flex-shrink:0}
@media(max-width:760px){
.phase-intro{padding:14px}
.phase-heading{padding:14px 12px;gap:10px}
.phase-number{width:32px;height:32px}
.phase-heading-copy strong{font-size:14px}
.phase-heading-right{gap:5px;flex-direction:column;align-items:flex-end}
.phase-heading-right .count{font-size:10px;white-space:nowrap}
.phase-details{padding:0 13px 5px}
.phase-task-main{gap:9px;flex-wrap:wrap}
.phase-task-main>.rowaction{margin-left:43px}
}


/* Tombola accounting calculator */
.phase-jump{display:flex;align-items:center;gap:14px;min-width:0;width:100%;padding:14px 0;background:transparent;border:0;border-top:1px solid #edf1f4;text-align:left;color:inherit}
.phase-jump:first-child{border-top:0}.phase-jump:hover{background:#f5fafb}.phase-jump .count,.phase-jump .badge{flex-shrink:0}
.account-panel{margin:18px 0;padding:18px;border-radius:14px;background:#f5f9fb;border:1px solid #dbe8ec;overflow:hidden}
.account-panel h3{margin:0 0 5px;font-size:19px;color:#164552}.account-panel h4{margin:20px 0 10px;font-size:14px}
.account-panel>p{font-size:13px;line-height:1.55;color:#557281}
.account-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:15px}
.account-panel-heading p{margin:0;color:#647e88;font-size:13px}
.account-panel-heading small{font-size:11px;color:#748996}
.account-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:15px}
.account-form-grid label,.account-expense label,.account-note{display:grid;gap:7px;min-width:0}
.account-panel label>span{font-weight:690;font-size:12px;color:#2b5665}
.account-panel input,.account-panel textarea{width:100%;min-height:42px;padding:11px;border:1px solid #c9dae2;border-radius:9px;background:#fff;color:#143344}
.account-panel input:disabled,.account-panel textarea:disabled{background:#edf2f4}
.account-expenses{display:grid;gap:10px;margin-bottom:10px}
.account-expense{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.45fr) auto;gap:9px;align-items:end}
.account-expense .rowaction{min-height:42px}
.account-results{padding:14px 17px;margin:18px 0;border-radius:12px;background:#fff;border:1px solid #d9e6ea}
.account-results>div{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:8px 0;font-size:13px}
.account-results strong,.account-cash-check strong{font-variant-numeric:tabular-nums}
.account-main-total{font-size:14px!important;border-top:1px solid #dce8ea;padding-top:12px!important;margin-top:6px;font-weight:800;color:#165b56}
.account-cash-check{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px;font-size:12px;padding:12px;background:#fff;border:1px solid #d9e6ea;border-radius:9px}
.account-cash-check small{color:#6b8390}
.account-note{margin-top:13px}
.account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
@media(max-width:760px){
 .account-panel{padding:12px;margin:13px 0}
 .account-form-grid{grid-template-columns:1fr}
 .account-expense{grid-template-columns:minmax(0,1fr) minmax(94px,100px)}
 .account-expense .rowaction{grid-column:1/-1;justify-self:end;min-height:34px}
 .phase-jump{gap:10px;align-items:flex-start;flex-wrap:wrap}
 .phase-jump .listinfo{min-width:130px}
}

/* Task attachment viewer */
.document-action{white-space:nowrap}
.doc-entry{border-bottom:1px solid #e3ecef;padding:13px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.doc-entry:last-child{border-bottom:none}
.doc-description{flex:1;min-width:150px;display:grid;gap:4px;overflow-wrap:anywhere}
.doc-description strong{font-size:13px;color:#284b5c}
.doc-description small{font-size:12px;color:#718797}
.doc-entry a,.doc-entry button{font-size:12px;text-decoration:none}
.doc-upload{display:flex;flex-direction:column;gap:10px;margin-top:18px;padding:15px;border-radius:12px;background:#f0f6f7;border:1px solid #d0e3e5}
.doc-upload label{font-size:13px;font-weight:700}
.doc-upload input{font-size:13px;max-width:100%}
.doc-upload .btn{align-self:flex-start}
@media(max-width:760px){.doc-entry{align-items:flex-start}.doc-description{flex-basis:100%}.doc-entry a,.doc-entry button{flex:1;text-align:center}}

.doc-usage{display:grid;gap:8px;margin:12px 0 18px;padding:12px;border:1px solid #d1e4e9;border-radius:11px;background:#f6f9fb;font-size:12px;color:#285969}
.doc-usage progress{width:100%;height:11px;accent-color:#147f79}


/* iPhone-friendly document preview with always visible navigation */
.doc-preview-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:stretch;justify-content:center;background:#102731ed;padding:0;overscroll-behavior:contain}
.doc-preview-dialog{width:100%;height:100%;max-height:100dvh;max-width:1050px;display:flex;flex-direction:column;min-height:0;background:#f6f9fa;box-shadow:0 12px 50px #0004}
.doc-preview-header{position:relative;z-index:2;flex-shrink:0;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top, 0px)) 15px 12px;background:#fff;border-bottom:1px solid #dae4e9}
.doc-preview-header>strong{flex:1;min-width:0;font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.doc-preview-close{white-space:nowrap;flex-shrink:0;min-height:42px;font-size:13px}
.doc-preview-body{display:flex;flex:1;min-height:0;overflow:auto;justify-content:center;align-items:center;background:#e9eef0}
.doc-preview-body iframe{border:0;display:block;width:100%;height:100%;min-height:0;background:#fff}
.doc-preview-body img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.doc-preview-footer{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:space-between;background:#fff;border-top:1px solid #dae4e9;padding:12px 15px calc(14px + env(safe-area-inset-bottom, 0px))}
.doc-preview-footer>.rowaction{min-height:42px;text-align:center}
@media(max-width:760px){
 .doc-preview-header{padding-left:10px;padding-right:10px;gap:6px}
 .doc-preview-header>strong{font-size:12px}
 .doc-preview-header>.rowaction{font-size:12px;padding:9px 8px;white-space:nowrap}
 .doc-preview-close{padding:9px 10px;font-size:12px}
 .doc-preview-footer{gap:7px;padding-left:10px;padding-right:10px}
 .doc-preview-footer>*{flex:1;min-width:0;font-size:12px}
 .doc-preview-footer>.rowaction{max-width:none}
}
