:root{--bg: #0d0c0a;--card: #191713;--card2: #211e19;--line: #2e2a23;--text: #f2efe9;--muted: #9c948a;--orange: #f08a24;--orange-soft: rgba(240, 138, 36, .14);--green: #2fa05a;--green-soft: rgba(47, 160, 90, .16);--emerald: #2fb673;--red: #d95b4a;--radius: 16px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100dvh}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:16px}.phone{width:100%;max-width:440px;min-height:100dvh;margin:0 auto;position:relative;padding-bottom:96px}header.app{padding:20px 18px 12px;display:flex;align-items:center;gap:12px}.logo-img{width:54px;flex:none}.brand h1{font-size:19px;font-weight:700;letter-spacing:.3px}.brand h1 span{color:var(--emerald)}.brand p{font-size:12.5px;color:var(--muted);margin-top:1px}.datebar{display:flex;gap:8px;padding:10px 18px 4px}.datebar button{flex:1;padding:11px 6px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:14.5px;font-weight:600;cursor:pointer;font-family:inherit}.datebar button.active{background:var(--orange-soft);border-color:var(--orange);color:var(--orange)}.datebar input[type=date]{flex:1.2;padding:11px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:14px;font-family:inherit;color-scheme:dark}.datebar input[type=date].active{border-color:var(--orange);background:var(--orange-soft);color:var(--orange)}.daytitle{padding:14px 18px 4px;font-size:15px;color:var(--muted)}.daytitle b{color:var(--text);font-size:17px;text-transform:capitalize}.stats{display:flex;gap:10px;padding:12px 18px}.stat{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.stat .n{font-size:24px;font-weight:800;letter-spacing:.5px}.stat.orange .n{color:var(--orange)}.stat.amber .n{color:#e4b04a}.stat.green .n{color:var(--green)}.stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-top:2px}.groups{padding:6px 18px}.group{margin-bottom:18px}.group-head{display:flex;align-items:center;gap:10px;margin:14px 2px 10px}.avatar{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#0d0c0a}.avatar.warn{background:#3a342b;color:var(--orange);font-size:17px}.group-head .name{font-size:16.5px;font-weight:700}.group-head .cnt{margin-left:auto;font-size:13px;color:var(--muted)}.task{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;margin-bottom:10px;position:relative;overflow:hidden}.task:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange)}.task.st-unassigned:before{background:var(--red)}.task.st-in_progress:before{background:#e4b04a}.task.st-done:before{background:var(--green)}.task.st-done{opacity:.72}.task.st-done .t-title{text-decoration:line-through;text-decoration-color:#2fa05a99;text-decoration-thickness:1.5px}.chip.status.work{background:#e4b04a29;color:#e4b04a}.chip.status.done{background:var(--green-soft);color:var(--green)}.photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.photo-thumb{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--line);cursor:pointer;background:var(--card2)}.photo-add{width:64px;height:64px;border-radius:12px;border:1.5px dashed var(--line);background:var(--card2);color:var(--muted);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}.photo-add:disabled{opacity:.7}.spin.dark{border-color:#f2efe940;border-top-color:var(--orange);margin-right:0}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#060504f0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px}.photo-viewer img{max-width:100%;max-height:72vh;border-radius:14px}.pv-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.pv-actions .a-btn{text-decoration:none;font-size:15px;padding:12px 18px}.status-actions{display:flex;gap:8px;margin-top:12px}.st-btn{flex:1;padding:12px 10px;border-radius:999px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid var(--line);background:var(--card2);color:var(--text)}.st-btn.work{border-color:#e4b04a99;color:#e4b04a;background:#e4b04a1a}.st-btn.done{border-color:var(--green);color:#0d0c0a;background:linear-gradient(135deg,var(--green),#27824b)}.st-btn.back{flex:0 0 auto;padding:12px 16px;color:var(--muted);white-space:nowrap}.status-actions .st-btn.back:only-child{flex:1}.st-btn:disabled{opacity:.6}.task .t-title{font-size:16px;font-weight:650;line-height:1.35;padding-right:4px}.task .t-comment{font-size:14px;color:var(--muted);line-height:1.45;margin-top:6px;white-space:pre-line}.t-foot{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap}.chip{font-size:12.5px;padding:5px 12px;border-radius:999px;background:var(--green-soft);color:var(--green);font-weight:600}.chip.status{background:var(--orange-soft);color:var(--orange)}.chip.warn{background:#d95b4a29;color:#e28568}.t-actions{margin-left:auto;display:flex;gap:6px}.icon-btn{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--muted);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center}.icon-btn.del:active{color:var(--red);border-color:var(--red)}.empty{text-align:center;padding:56px 24px;color:var(--muted);line-height:1.6;font-size:15px}.empty .big{font-size:40px;margin-bottom:10px}.load-error{margin:10px 18px;padding:14px 16px;border:1px solid var(--red);border-radius:var(--radius);color:#e28568;font-size:14.5px;line-height:1.5}.fab{position:fixed;bottom:22px;left:50%;transform:translate(-50%);width:min(404px,calc(100% - 36px));padding:16px;border:none;border-radius:999px;cursor:pointer;background:linear-gradient(135deg,var(--orange),#d9761b);color:#14100a;font-size:17px;font-weight:800;letter-spacing:.3px;box-shadow:0 8px 28px #f08a2459;font-family:inherit}.fab:active{transform:translate(-50%) scale(.98)}.form-head{display:flex;align-items:center;gap:12px;padding:20px 18px 8px}.back{width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:18px;cursor:pointer;flex:none}.form-head h2{font-size:19px;font-weight:700}form.task-form{padding:8px 18px}label.fld{display:block;margin:16px 0 7px 14px;font-size:13.5px;color:var(--muted);font-weight:600;letter-spacing:.4px;text-transform:uppercase}input[type=text],input[type=tel],textarea,input.f-date{width:100%;padding:15px 24px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:16px;font-family:inherit;color-scheme:dark;caret-color:var(--orange);transition:border-color .2s,box-shadow .2s}textarea{border-radius:26px;padding:16px 24px;min-height:110px;resize:vertical;line-height:1.45}input:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px #f08a2429}.hint{font-size:12.5px;color:var(--muted);margin-top:5px;text-align:right;margin-right:14px}.people{display:flex;flex-direction:column;gap:8px}.person{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--card);border:1px solid var(--line);border-radius:999px;cursor:pointer}.person.checked{border-color:var(--green);background:var(--green-soft)}.person input{display:none}.box{width:24px;height:24px;border-radius:8px;border:2px solid var(--muted);flex:none;display:flex;align-items:center;justify-content:center;font-size:14px;color:#0d0c0a;font-weight:800}.person.checked .box{background:var(--green);border-color:var(--green)}.person .p-name{font-size:16px;font-weight:600}.addp{margin-top:10px;display:flex;gap:8px}.addp input{flex:1}.addp button{padding:0 22px;border-radius:999px;border:1px solid var(--green);background:var(--green-soft);color:var(--green);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}.err{color:var(--red);font-size:14px;margin-top:14px}.form-actions{display:flex;gap:10px;margin:24px 0 30px}.btn{flex:1;padding:16px;border-radius:999px;border:none;font-size:16.5px;font-weight:800;cursor:pointer;font-family:inherit}.btn:disabled{opacity:.9;cursor:default}.btn.save{background:linear-gradient(135deg,var(--orange),#d9761b);color:#14100a}.btn.cancel{background:var(--card);border:1px solid var(--line);color:var(--muted)}.btn.delete{background:none;border:1px solid var(--red);color:var(--red);margin-bottom:26px;width:100%;padding:14px;border-radius:999px;font-size:15.5px;font-weight:700;cursor:pointer;font-family:inherit}@keyframes shimmer{0%{background-position:-500px 0}to{background-position:500px 0}}.skel{background:linear-gradient(90deg,#1b1815 25%,#272219,#1b1815 75%);background-size:1000px 100%;animation:shimmer 1.3s linear infinite}.skel-circle{width:34px;height:34px;border-radius:50%;flex:none}.skel-line{height:15px;border-radius:8px}.skel-card{height:104px;border-radius:20px;margin-bottom:10px}@keyframes rot{to{transform:rotate(360deg)}}.spin{display:inline-block;width:17px;height:17px;margin-right:10px;vertical-align:-3px;border:2.5px solid rgba(20,16,10,.35);border-top-color:#14100a;border-radius:50%;animation:rot .7s linear infinite}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:28px 26px 40px}.login-logo{display:block;width:min(340px,86%);margin:0 auto 4px;filter:drop-shadow(0 14px 44px rgba(240,138,36,.18))}.login-brand{text-align:center;margin-bottom:6px}.login-brand h1{font-size:30px;font-weight:800;letter-spacing:.5px;color:var(--emerald)}.login-brand p{font-size:14.5px;color:var(--muted);margin-top:6px}.login-form{max-width:340px;width:100%;margin:26px auto 0}.login-form label.fld{margin-left:0;text-align:center}.login-form input[type=tel],.login-form .pass-wrap input{width:100%;display:block;border-radius:999px;padding:17px 26px;text-align:center;background:linear-gradient(180deg,#1d1a15,#151310);border:1.5px solid var(--line);font-size:16.5px;color:var(--text);caret-color:var(--orange);box-shadow:inset 0 2px 6px #00000059;transition:border-color .2s,box-shadow .2s;font-family:inherit}.login-form input:focus{outline:none;border-color:var(--orange);box-shadow:inset 0 2px 6px #00000059,0 0 0 4px #f08a2429}.pass-wrap{position:relative;width:100%}.pass-wrap input{padding-left:58px!important;padding-right:58px!important}.eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:42px;height:42px;border:none;background:none;color:var(--muted);font-size:19px;cursor:pointer}.login-err{text-align:center}.login-btn{width:100%;margin-top:26px;padding:17px;border:none;border-radius:999px;cursor:pointer;background:linear-gradient(135deg,var(--orange),#d9761b);color:#14100a;font-size:17.5px;font-weight:800;letter-spacing:.3px;box-shadow:0 8px 28px #f08a244d;font-family:inherit}.login-btn:disabled{opacity:.9;cursor:default}.login-note{text-align:center;font-size:13.5px;color:var(--muted);margin-top:22px;line-height:1.6}.login-note b{color:var(--text);font-weight:600}.splash{min-height:100dvh;display:flex;align-items:center;justify-content:center}.splash img{width:120px;opacity:.7}.userbar{margin-left:auto;display:flex;align-items:center;gap:8px}.userbar .u-name{font-size:13px;color:var(--muted);text-align:right;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userbar .u-role{display:block;font-size:11px;color:var(--orange)}.accounts{padding:6px 18px 30px}.account{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;margin-bottom:10px}.account.off{opacity:.55}.a-row{display:flex;align-items:center;gap:10px}.a-name{font-size:16px;font-weight:650}.a-phone{font-size:13.5px;color:var(--muted);margin-top:2px}.a-actions{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}.a-btn{padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--muted);font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}.a-btn.danger{border-color:#d95b4a80;color:#e28568}.a-btn.ok{border-color:#2fa05a80;color:var(--green)}.role-badge{margin-left:auto;font-size:12px;padding:4px 10px;border-radius:999px;font-weight:700}.role-badge.director{background:var(--orange-soft);color:var(--orange)}.role-badge.employee{background:var(--green-soft);color:var(--green)}.role-badge.owner{background:#e4b04a29;color:#e4b04a}.role-badge.accountant{background:#5ba88f29;color:#5ba88f}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:440px;display:flex;background:#0d0c0af5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:40}.bottom-nav button{flex:1;padding:12px 8px 16px;border:none;background:none;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.bottom-nav button .ico{display:block;font-size:20px;margin-bottom:3px}.bottom-nav button.active{color:var(--orange)}.grant-box{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px;margin:6px 18px 16px}.grant-box h3{font-size:15.5px;margin-bottom:4px}.grant-box select{width:100%;padding:14px 20px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--text);font-size:15.5px;font-family:inherit}.pwd-box{background:var(--green-soft);border:1px solid var(--green);border-radius:20px;padding:16px;margin:0 18px 16px;line-height:1.6}.pwd-box .pwd{font-size:22px;font-weight:800;letter-spacing:2px;color:var(--green);font-family:Consolas,monospace}.pwd-box .note{font-size:13px;color:var(--muted)}.chip.unplanned{background:#b07bd929;color:#b993d6}.fab.secondary{background:var(--card);border:1.5px solid var(--orange);color:var(--orange);box-shadow:0 8px 28px #0006}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060504b3;z-index:90;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:440px;background:var(--bg);border:1px solid var(--line);border-radius:24px 24px 0 0;padding:22px 18px 26px}.sheet h3{font-size:18px;margin-bottom:4px}.sheet-note{font-size:13.5px;color:var(--muted);line-height:1.5}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%) translateY(-80px);background:var(--green);color:#0d0c0a;font-weight:700;font-size:15px;padding:12px 22px;border-radius:999px;transition:transform .3s;z-index:50;white-space:nowrap}.toast.show{transform:translate(-50%) translateY(0)}.toast.error{background:var(--red);color:#fff}
