:root{--bg:#0b0b0e;--card:#15151c;--card2:#1c1c25;--line:#2a2a34;--text:#f3f3f6;--mute:#a8a8b3;--red:#da0e0e;--red2:#ff3b3b;--green:#2fd47a;--amber:#ffb020;--blue:#5aa8ff;--glow:rgba(218,14,14,.35)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font:400 17px/1.45 Rubik,system-ui,sans-serif;min-height:100svh}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}
input,select{font:inherit;color:inherit}
h1,h2,h3{font-family:Raleway,Rubik,sans-serif;line-height:1.15;color:#fff}
.wrap{max-width:1500px;margin:0 auto;padding:0 20px}
.demo{background:#ffd400;color:#000;font:600 13px/1.3 Rubik;padding:8px 14px;display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;text-align:center}
.demo button{background:#000;color:#ffd400;border-radius:20px;padding:4px 12px;font-size:12px}
.top{position:sticky;top:0;z-index:20;background:rgba(11,11,14,.96);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}.brand img{width:42px;height:42px;border-radius:10px;object-fit:cover}.brand b{font:800 19px Raleway;display:block;line-height:1.1}.brand small{color:var(--mute);font-size:13px;text-transform:capitalize}
.tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px}
.tabs button{padding:11px 22px;border-radius:10px;font-weight:600;color:var(--mute);min-height:44px}
.tabs button.on{background:var(--red);color:#fff;box-shadow:0 4px 14px var(--glow)}
.act{display:flex;gap:10px;align-items:center}
.help{width:44px;height:44px;border-radius:50%;border:1px solid #3a3a46;font:700 18px Raleway}.help:hover{border-color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:16px;box-shadow:0 4px 14px var(--glow);transition:.2s;min-height:46px;border:1px solid var(--red)}
.btn:hover{background:var(--red2)}.btn.ghost{background:transparent;border-color:#3a3a46;box-shadow:none}.btn.ghost:hover{border-color:var(--red)}
.btn.green{background:#1fa855;border-color:#1fa855;box-shadow:0 4px 14px rgba(31,168,85,.3)}.btn.green:hover{background:#25c063}
.btn.sm{padding:9px 14px;font-size:15px;min-height:42px;border-radius:10px}.btn.txt{background:none;border:0;box-shadow:none;color:var(--mute)}.btn.txt:hover{color:#fff}.btn.full{width:100%}
main{padding-top:22px;padding-bottom:90px}
/* today strip */
.strip{display:flex;gap:12px;align-items:stretch;margin-bottom:20px;flex-wrap:wrap}
.say{flex:1 1 360px;background:linear-gradient(135deg,#1d0c0e,#15151c);border:1px solid #3a1519;border-radius:16px;padding:16px 20px}
.say b{font:800 22px Raleway;display:block;margin-bottom:6px}
.say ul{list-style:none;display:flex;gap:8px;flex-wrap:wrap}
.say li button{background:#241014;border:1px solid #4a1a20;border-radius:20px;padding:7px 14px;font-size:15px}.say li button:hover{border-color:var(--red2)}.say li b{display:inline;font:700 15px Rubik;color:var(--amber)}
.money{display:flex;gap:22px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 22px}
.money div{display:flex;flex-direction:column}.money small{color:var(--mute);font-size:13px}.money b{font:800 24px Raleway}.money .w b{color:var(--amber)}
/* board */
.board{display:grid;grid-template-columns:repeat(5,minmax(250px,1fr));gap:14px;align-items:start;overflow-x:auto;padding-bottom:20px;scroll-snap-type:x proximity}
.col{background:#101016;border:1px solid var(--line);border-radius:18px;padding:12px;min-height:200px;scroll-snap-align:start;transition:.2s}
.col.over{border-color:var(--red);background:#190c0e}
.col h2{font:800 17px Raleway;padding:4px 6px 4px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.col h2 em{font:600 13px Rubik;font-style:normal;background:#22222c;color:var(--mute);border-radius:12px;padding:2px 10px}
.col .hint{color:var(--mute);font-size:13.5px;padding:0 6px 10px;min-height:38px}
.col.c-wait h2{color:var(--amber)}.col.c-booked h2{color:var(--blue)}.col.c-shoot h2{color:var(--green)}.col.c-edit h2{color:#c79bff}.col.c-deliver h2{color:#ff8f8f}
.cards{display:flex;flex-direction:column;gap:10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;cursor:grab;transition:.15s;position:relative}
.card:hover{border-color:#44444f}.card.drag{opacity:.4}
.card .nm{font:700 17px Raleway;margin-bottom:4px;padding-right:20px}
.card .wh{font:600 15px Rubik;color:#fff}.card .wh.now{color:var(--green)}
.card .it{color:var(--mute);font-size:14.5px;margin:2px 0 8px}
.card .tm{display:inline-block;font-size:13px;padding:3px 10px;border-radius:12px;background:rgba(255,176,32,.15);color:var(--amber);margin-bottom:10px}.card .tm.red{background:rgba(218,14,14,.22);color:#ff8080}
.card .ty{position:absolute;right:12px;top:14px;width:10px;height:10px;border-radius:50%}.ty.st{background:var(--blue)}.ty.pr{background:var(--red2)}
.card .go{display:flex;gap:8px;flex-wrap:wrap}.card .go .btn{flex:1 1 auto}
.empty{border:1px dashed #33333f;border-radius:12px;padding:18px 10px;text-align:center;color:#6f6f7b;font-size:14.5px}
.donebar{margin-top:6px;text-align:center;color:var(--mute);font-size:14px}.donebar button{color:var(--mute);text-decoration:underline;padding:8px}
/* clients + prices */
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.client{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}
.client .nm{font:700 19px Raleway}.client .ph{color:var(--mute);font-size:15px}.client .st{color:var(--mute);font-size:15px}.client .st b{color:#fff}
.client .bt{display:flex;gap:8px;flex-wrap:wrap}
.search{width:100%;max-width:460px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:16px;outline:0}.search:focus{border-color:var(--red)}
.pbox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;max-width:720px;margin-bottom:16px}
.pbox h2{font-size:21px;margin-bottom:4px}.pbox>p{color:var(--mute);font-size:15px;margin-bottom:14px}
.pl{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.pl:last-child{border:0}.pl label{flex:1}.pl label small{display:block;color:var(--mute);font-size:13px}
.pl input{width:130px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;text-align:right;font-weight:600;outline:0;min-height:44px}.pl input:focus{border-color:var(--red)}
.copy{display:flex;gap:10px;justify-content:space-between;align-items:center;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;flex-wrap:wrap}
/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.74);z-index:50;display:grid;place-items:center;padding:12px}.modal[hidden]{display:none}
.sheet{background:#13131a;border:1px solid var(--line);border-radius:22px;width:min(540px,100%);max-height:94svh;overflow:auto;padding:26px 24px;animation:up .25s ease}
@keyframes up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
.sheet h2{font-size:25px;margin-bottom:6px}.sheet .sub{color:var(--mute);margin-bottom:18px}
.f{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.f label{font-size:14.5px;color:var(--mute)}
.f input,.f select{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:13px;outline:0;min-height:50px}.f input:focus,.f select:focus{border-color:var(--red)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sum{background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:6px 0 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.sum b{font:800 24px Raleway}
.chk{display:flex;gap:12px;align-items:center;margin-bottom:14px;cursor:pointer}.chk input{width:22px;height:22px;accent-color:var(--red)}
.det{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.det span{color:var(--mute)}.det b{text-align:right;font-weight:500}
.tour .big{font-size:54px;margin-bottom:8px}.tour .dots{display:flex;gap:8px;margin:18px 0}.tour .dots i{width:8px;height:8px;border-radius:50%;background:#3a3a46}.tour .dots i.on{background:var(--red);width:24px;border-radius:5px}.tour .bt{display:flex;gap:10px;justify-content:space-between}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);background:#1b1b24;border:1px solid #3a3a46;padding:14px 18px;border-radius:14px;z-index:60;opacity:0;pointer-events:none;transition:.3s;display:flex;gap:14px;align-items:center;max-width:94vw;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
@media(max-width:900px){
 .top .wrap{flex-direction:column;flex-wrap:nowrap;align-items:stretch;min-width:0}.brand{justify-content:center}.tabs{min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto;padding:11px 14px}
 .act{justify-content:space-between}.act .btn{flex:1}
 .board{grid-template-columns:repeat(5,86%);gap:12px}
 .money{width:100%;justify-content:space-between}
 .wrap{padding:0 14px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

[hidden]{display:none!important}

/* ===== v3: Trello-like board + calendar ===== */
.strip{align-items:center}
.say{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:#17171f;border:1px solid var(--line);border-radius:14px}
.say b{font:700 16px Raleway;margin:0 6px 0 0;display:inline}
.say button{background:#241014;border:1px solid #4a1a20;border-radius:20px;padding:7px 14px;font-size:15px}.say button b{color:var(--amber);font:700 15px Rubik;margin:0}
.say span{color:var(--mute)}
.money{gap:18px;padding:12px 18px;font-size:15px;color:var(--mute);align-items:center}.money b{font:800 19px Raleway;color:#fff;margin-left:4px}.money .w b{color:var(--amber)}
.tip{color:var(--mute);font-size:14.5px;margin:0 0 14px}.tip b{color:#fff}
.board{grid-template-columns:repeat(5,minmax(240px,1fr));gap:12px;align-items:start}
.col{padding:10px;background:#12121a;border-radius:16px}
.col h2{font:700 16px Raleway;color:#fff;gap:10px;padding:4px 4px 2px}
.col h2 .n{width:24px;height:24px;border-radius:50%;background:#2a2a36;color:#fff;font:700 13px Rubik;display:grid;place-items:center;flex:none}
.col h2 em{margin-left:auto}
.col.c-wait h2 .n{background:var(--amber);color:#000}.col.c-booked h2 .n{background:var(--blue);color:#000}.col.c-shoot h2 .n{background:var(--green);color:#000}.col.c-edit h2 .n{background:#c79bff;color:#000}.col.c-deliver h2 .n{background:#ff8f8f;color:#000}
.col .hint{padding:0 4px 10px;min-height:0;font-size:13px}
.cards{min-height:56px;display:flex;flex-direction:column;gap:8px;padding-bottom:4px}
.cards:empty:before{content:"Пока пусто";display:block;color:#5f5f6b;font-size:14px;text-align:center;border:1px dashed #2f2f3a;border-radius:10px;padding:16px 8px}
.card{padding:11px 40px 11px 12px;cursor:pointer;border-radius:12px;background:#1b1b25;border:1px solid #2c2c38;box-shadow:0 1px 0 rgba(0,0,0,.4)}
.card:hover{border-color:#52525f;background:#20202b}
.card .lab{display:inline-block;font:600 11px Rubik;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:6px;margin-bottom:6px}
.lab.st{background:rgba(90,168,255,.18);color:var(--blue)}.lab.pr{background:rgba(218,14,14,.22);color:#ff7d7d}
.card .nm{font:700 16px Raleway;padding:0;margin-bottom:2px}
.card .it{font-size:13.5px;color:var(--mute);margin:0 0 8px}
.card .ft{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;color:#d5d5dc}.card .pc{color:var(--mute)}
.card .bd{margin-top:8px}.bdg{display:inline-block;font:600 12px Rubik;padding:3px 9px;border-radius:10px}
.bdg.amb{background:rgba(255,176,32,.16);color:var(--amber)}.bdg.red{background:rgba(218,14,14,.24);color:#ff8585}.bdg.grn{background:rgba(47,212,122,.16);color:var(--green)}
.card .mv{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:8px;background:#2a2a36;color:#fff;font:700 16px Rubik;display:grid;place-items:center;opacity:.7}
.card .mv:hover{background:var(--red);opacity:1}
.addc{width:100%;text-align:left;padding:10px 8px;color:var(--mute);border-radius:10px;font-size:15px}.addc:hover{background:#1b1b25;color:#fff}
.sortable-ghost,.ghost{opacity:.35;background:#2a1215;border:1px dashed var(--red2)}
.sortable-chosen,.chosen{box-shadow:0 10px 30px rgba(0,0,0,.6)}
#cal{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;--fc-page-bg-color:transparent;--fc-neutral-bg-color:#1b1b25;--fc-border-color:#2a2a34;--fc-today-bg-color:rgba(218,14,14,.08);--fc-now-indicator-color:#ff3b3b;--fc-button-bg-color:#242430;--fc-button-border-color:#33333f;--fc-button-hover-bg-color:#33333f;--fc-button-hover-border-color:#44444f;--fc-button-active-bg-color:var(--red);--fc-button-active-border-color:var(--red);--fc-event-border-color:transparent;--fc-list-event-hover-bg-color:#20202b}
#cal .fc-toolbar-title{font:800 22px Raleway;text-transform:capitalize}
#cal .fc-button{font-size:14px;padding:8px 12px;text-transform:none}
#cal .fc-col-header-cell-cushion,#cal .fc-timegrid-slot-label-cushion{color:var(--mute);text-transform:capitalize;font-weight:500;padding:8px 4px}
#cal .fc-timegrid-slot{height:3.1em}
.ev{border:0;border-radius:8px;cursor:pointer;padding:2px 4px;overflow:hidden}
.ev-st{background:#1e4d82}.ev-pr{background:#a1121a}
.ev.st-wait{background:repeating-linear-gradient(45deg,#4a3a10,#4a3a10 8px,#3b2e0c 8px,#3b2e0c 16px);border:1px dashed var(--amber)}
.ev.st-done{opacity:.55}
.evt{font-size:12.5px;line-height:1.25;color:#fff}.evt b{display:block;font-size:13.5px}.evt span,.evt i{display:block;font-style:normal;opacity:.85}
@media(max-width:900px){.board{grid-template-columns:repeat(5,82%)}.say{width:100%}.money{width:100%;justify-content:space-between}#cal{padding:8px}#cal .fc-toolbar{flex-direction:column;gap:8px}#cal .fc-toolbar-title{font-size:18px}}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:4px}
.kpi span,.kpi small{color:var(--mute);font-size:14px}.kpi b{font:800 24px Raleway}
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.split div{background:var(--bg,#0b0b0e);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}
.split b{font:800 20px Raleway}.split span{color:var(--mute);font-size:14px}
.bar{display:grid;grid-template-columns:130px 1fr 48px;align-items:center;gap:10px;margin:8px 0;font-size:14px}
.bar i{display:block;height:10px;border-radius:6px;background:var(--red);min-width:2px}.bar em{font-style:normal;color:var(--mute);text-align:right}
.tag{display:inline-block;padding:2px 8px;border-radius:99px;background:rgba(255,255,255,.1);font-size:12px;color:#fff}.tag.new{background:var(--red)}
textarea{width:100%;background:transparent;border:1px solid var(--line);border-radius:12px;color:#fff;padding:12px;font:inherit;resize:vertical}
@media(max-width:600px){.bar{grid-template-columns:100px 1fr 40px}}

/* mobile tap targets >=44px (iPhone check 2026-10-29) */
@media(max-width:900px){
.card .mv{width:44px;height:44px;right:6px}.card{padding-right:58px}
.say button,.donebar button,.demo button{min-height:44px}
.donebar button{padding:0 14px}
}
