:root{color:#1b2722;background:#f6f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}.login-screen{place-items:center;min-height:100vh;padding:20px;display:grid}.hero{color:#fff8ec;background:linear-gradient(135deg,#17433b,#2e6d60);border-radius:32px;padding:32px;box-shadow:0 24px 70px #17433b40}.hero h1{letter-spacing:-.05em;margin:8px 0 10px;font-size:clamp(2.1rem,7vw,3.4rem)}.hero p{max-width:760px;font-size:1.1rem;line-height:1.55}.login-card{width:min(680px,100%)}.login-form{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:22px 0 12px;display:grid}.login-form input{border:1px solid #d8cdbb}.error{color:#ffd7ca;font-weight:800}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#f6c85f;font-size:.74rem;font-weight:800}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:20;color:#fff8ec;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:#17433b;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-header strong{font-size:1.05rem;display:block}.app-header small{color:#b8d4c6}.app-header .icon-button{color:#fff8ec;background:#ffffff24}.tab-content{flex:1;width:min(760px,100%);margin:0 auto;padding:16px 14px 90px}.tabbar{z-index:30;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#fffdf8;border-top:1px solid #e5dac6;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #22262214}.tab{color:#77836c;cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 2px;font-size:.68rem;font-weight:700;display:flex}.tab.active{color:#17433b}.tab.active .tab-icon{background:#e3efe6}.tab-icon{border-radius:999px;place-items:center;width:44px;height:28px;display:grid;position:relative}.tab-badge{color:#fff;background:#e2543e;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.62rem;font-weight:800;display:grid;position:absolute;top:-4px;right:2px}.tab-label{line-height:1}.tab:hover{filter:none;transform:none}@media (width>=920px){.tabbar{border-top:none;border-bottom:1px solid #e5dac6;justify-content:center;gap:8px;padding:6px;position:sticky;top:58px;bottom:auto;box-shadow:0 8px 20px #2226220f}.tab{flex-direction:row;flex:none;gap:8px;padding:8px 14px;font-size:.85rem}.tab.active{background:#e3efe6}.tab.active .tab-icon{background:0 0}.tab-icon{width:auto;height:auto}.tab-content{padding-bottom:30px}}.panel{background:#ffffffc7;border:1px solid #17433b1f;border-radius:20px;margin-bottom:14px;padding:18px;box-shadow:0 12px 30px #2226220f}.panel h2{margin:0 0 12px;font-size:1.2rem}.panel h3{margin:18px 0 10px;font-size:1.02rem}.panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-head h2{margin:0}.panel.error{color:#b43a28}.panel.warning{background:#fff6e4;border-color:#f1d79f}.panel.warning h2{color:#8a6d1f;align-items:center;gap:8px;display:flex}.muted,small,.item p{color:#627169}.list{gap:10px;margin-top:10px;display:grid}.item{background:#fffdf8;border:1px solid #ede3d4;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.item p{margin:4px 0 0}.item.editing{border-color:#17433b;box-shadow:0 0 0 2px #17433b33}.item.planned{background:#fff9ec;border-style:dashed;border-color:#e3cf9d}.item-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.positive{color:#147a45}.negative{color:#b43a28}input,select,button{font:inherit;border:1px solid #d8cdbb;border-radius:14px;padding:11px 13px}input,select{color:#1b2722;background:#fffdf8;width:100%}button{color:#fff;cursor:pointer;background:#17433b;border:none;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}button:hover{filter:brightness(1.04)}.icon-button{color:#17433b;background:#eef5ef;border-radius:12px;padding:9px}.icon-button.danger{color:#b43a28;background:#fdeae5}.secondary{color:#1b2722;background:#e8e2d6}.form,.inline-form{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.inline-form{grid-template-columns:minmax(0,1fr) minmax(0,.6fr) auto}.inline-form.family-form{grid-template-columns:minmax(0,1fr) auto auto}.form.compact{margin-bottom:14px}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.form-actions{gap:10px;display:flex}.form-actions button{flex:1}.primary-toggle{width:100%;margin-bottom:14px;padding:14px;font-size:1rem}.toggle-inline{width:100%;margin-top:12px}.weight-field{gap:6px;font-size:.9rem;font-weight:700;display:grid}.weight-field small{font-weight:400}.date-label{color:#4a564e;gap:6px;font-size:.82rem;font-weight:700;display:grid}.exclude-box{background:#fff6e4;border:1px solid #f1d79f;border-radius:16px;gap:8px;padding:12px;display:grid}.exclude-box label{align-items:center;gap:8px;font-weight:400;display:flex}.exclude-box input{width:auto}.exclude-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.category-chips{margin:0 0 6px}.category-chips span,.chips span{color:#17433b;background:#eef5ef;border:1px solid #d7eadc;border-radius:999px;padding:6px 10px;font-size:.8rem}.status-chip{color:#8a6d1f;background:#fff6dc;border:none;border-radius:999px;padding:8px 12px;font-size:.82rem}.status-chip.done{color:#147a45;background:#eaf5ec}.shopping-row{align-items:stretch;gap:8px;display:flex}.shopping-row .shopping{flex:1}.shopping{color:#1b2722;background:#fffdf8;border:1px solid #ede3d4;justify-content:flex-start;width:100%;font-weight:600}.shopping small{margin-left:auto}.shopping-check{color:#fff;border:2px solid #c9bda6;border-radius:8px;flex-shrink:0;place-items:center;width:24px;height:24px;display:grid}.shopping.assigned{background:#fff6dc}.shopping.bought{background:#eaf5ec}.shopping.bought .shopping-check{background:#147a45;border-color:#147a45}.shopping.bought .shopping-title{color:#6b776f;text-decoration:line-through}.checkout-toggle{margin-top:12px;margin-bottom:0}.checkout-form{background:#eef5ef;border-radius:16px;margin-top:12px;padding:12px}.family-block{margin-bottom:14px}.family-head{background:#eef5ef;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:8px 12px;display:flex}.member-row{border-bottom:1px solid #efe7d8;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.member-row:last-child{border-bottom:none}.member-row small{display:block}.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}footer{color:#718078;text-align:center;padding:16px 0 8px;font-size:.82rem}.villa{--villa-bg:#10221f;--villa-panel:#16302b;--villa-panel-border:#d4a53138;--villa-gold:#d4a531;--villa-text:#f3ead3;--villa-muted:#a9bdb3;background:var(--villa-bg);color:var(--villa-text);border-radius:20px;margin:-4px;padding:16px;font-family:inherit}.villa .muted{color:var(--villa-muted)}.villa .error{color:#ff9d8a;font-weight:700}.villa-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--villa-gold);align-items:center;gap:6px;margin:0 0 6px;font-size:.72rem;font-weight:800;display:flex}.villa-login{gap:12px;padding:20px 4px;display:grid}.villa-login h2{margin:0;font-size:1.6rem}.villa-login-form{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.villa-login-form input{border:1px solid var(--villa-panel-border);color:var(--villa-text);background:#0d1c19}.villa-login-form button{background:var(--villa-gold);color:#1b2722}.villa-topbar{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.villa-topbar strong{font-size:1.3rem}.villa-topbar-actions{gap:8px;display:flex}.villa .icon-button{color:var(--villa-gold);background:#d4a53124}.villa-status-strip{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.villa-status-strip span{border:1px solid var(--villa-panel-border);color:var(--villa-gold);background:#d4a5311f;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.villa-subtabs{border-bottom:1px solid var(--villa-panel-border);z-index:15;background:var(--villa-bg);gap:6px;margin-bottom:8px;padding:8px 0;display:flex;position:sticky;top:58px;overflow-x:auto}.villa-collapse-head{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;width:100%;margin:0;padding:0;display:flex}.villa-collapse-head h3{margin:0}.villa-collapse-icon{color:var(--villa-gold);font-size:.8rem}.villa-collapse-body{margin-top:12px}.villa-secret{border:1px dashed var(--villa-panel-border);color:var(--villa-text);text-align:left;background:#00000040;justify-content:flex-start;width:100%;padding:10px 12px;font-weight:700}.villa-masked{color:var(--villa-muted);letter-spacing:.1em}.villa-prep{border:1px solid var(--villa-panel-border);background:#d4a53114;border-radius:12px;gap:8px;margin-top:8px;padding:12px;display:grid}.villa-prep p{margin:0}.villa-howto{gap:10px;margin:0;padding-left:20px;line-height:1.5;display:grid}.villa-howto li{padding-left:4px}.villa-level-req{background:#0003;border-radius:12px;gap:8px;margin-bottom:10px;padding:10px;display:grid}.villa-level-req p{margin:0}.villa-subtab{color:var(--villa-muted);background:0 0;border:1px solid #0000;border-radius:12px;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;display:inline-flex}.villa-subtab.active{color:var(--villa-gold);border-color:var(--villa-panel-border);background:#d4a53129}.villa-content{gap:12px;display:grid}.villa-panel{background:var(--villa-panel);border:1px solid var(--villa-panel-border);border-radius:16px;padding:16px}.villa-panel.warning{background:#d4a5311a}.villa-panel h3{color:var(--villa-gold);align-items:center;gap:8px;margin:0 0 10px;font-size:1.05rem;display:flex}.villa .form input,.villa .form select,.villa .inline-form input,.villa .field-row input,.villa .field-row select,.villa-textarea{border:1px solid var(--villa-panel-border);color:var(--villa-text);width:100%;font:inherit;background:#0d1c19;border-radius:12px;padding:10px 12px}.villa-textarea{resize:vertical}.villa .form,.villa .inline-form{gap:8px;display:grid}.villa .inline-form{grid-template-columns:minmax(0,1fr) auto}.villa button{background:var(--villa-gold);color:#1b2722;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:6px;padding:10px 14px;font-weight:800;display:inline-flex}.villa button.secondary{color:var(--villa-text);background:#ffffff14}.villa button.danger-text{color:#ff9d8a}.villa button.tiny{padding:6px 10px;font-size:.76rem}.villa button:disabled{opacity:.5;cursor:not-allowed}.villa-button-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.villa-list{gap:8px;margin-top:8px;display:grid}.villa-item{background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.villa-item.current{border-color:var(--villa-gold)}.villa-item>div:first-child{gap:4px;display:grid}.villa-item p{margin:0}.villa-item-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.villa-status-chip{background:#ffffff1a;border-radius:999px;width:fit-content;padding:3px 8px;font-size:.68rem}.villa-status-chip.status-active{color:var(--villa-gold);background:#d4a5314d}.villa-status-chip.status-done{color:#8fe3ac;background:#6ec88c40}.villa-status-chip.status-skipped,.villa-status-chip.status-paused{background:#ffffff14}.villa-status-chip.status-freigeschaltet{color:var(--villa-gold);background:#d4a53140}.villa-status-chip.status-gefunden{color:#8fe3ac;background:#6ec88c33}.villa-current-phase{color:var(--villa-gold);margin:0 0 6px;font-size:1.2rem;font-weight:800}.villa-readaloud{background:#0003;border-radius:12px;padding:12px;font-style:italic;line-height:1.6}.villa-highlight{color:var(--villa-gold);font-size:1.05rem;font-weight:800}.villa-countdown{text-align:center}.villa-countdown-time{color:var(--villa-gold);letter-spacing:.05em;font-size:2.6rem;font-weight:800}.villa-person{flex-direction:column;align-items:stretch}.villa-person-head{align-items:center;gap:8px;display:flex}.villa-person.traitor{border-color:#c85a4680}.villa-person.lars{border-color:#d4a53180}.villa-code{background:#ffffff1a;border-radius:8px;padding:2px 8px;font-size:.76rem}.villa-badge{color:var(--villa-gold);background:#d4a53133;border-radius:999px;padding:2px 8px;font-size:.7rem}.villa-role{color:#8fe3ac}.villa-role-traitor{color:#ff9d8a;font-weight:700}.villa-role-card{flex-direction:column;align-items:stretch}.villa-role-card.traitor-card{border-color:#c85a4666}.villa-role-card.lars-card{border-color:#d4a53166}.villa-clue{flex-direction:column;align-items:stretch}.villa-clue-head{justify-content:space-between;align-items:center;display:flex}.villa-fragment{color:var(--villa-gold);font-weight:800}.villa-team-dot{border-radius:999px;width:10px;height:10px;margin-right:4px;display:inline-block}.villa-olympic-card{flex-direction:column;align-items:stretch}.villa-safety{color:#ff9d8a;align-items:center;gap:6px;display:flex}
