/* Раскладка приложения поверх tokens.css. Строгий стиль: линии, не тени. */
html,body{height:100%}
[hidden]{display:none!important}
body{background:var(--bg)}
.app{min-height:100vh;display:flex}
.side{width:232px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px 18px;position:sticky;top:0;height:100vh}
.logo{display:flex;align-items:center;padding:0 4px;color:var(--ink)}
.logo svg{height:22px;width:auto;display:block}
.nav{display:flex;flex-direction:column;gap:2px;margin-top:18px}
.nav a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:9px;color:var(--ink-2);font-weight:500;font-size:14px}
.nav a:hover{background:var(--bg-2);color:var(--ink)}
.nav a.on{background:var(--bg-2);color:var(--ink)}
.nav .cnt{margin-left:auto;font-size:12px;color:var(--ink-3)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{height:64px;display:flex;align-items:center;gap:16px;padding:0 32px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.content{padding:28px 32px;display:flex;flex-direction:column;gap:28px}
.tenant{display:flex;align-items:center;gap:10px;height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;margin-top:22px;position:relative}
.tenant .av{width:26px;height:26px;border-radius:7px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex:none}
.tenant .t{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.tenant .t span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tenant select{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:8px 6px}
.user .av{width:30px;height:30px;border-radius:50%;background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--ink-2);flex:none}
.user form{margin-left:auto}
.user button{background:none;border:none;color:var(--ink-3);cursor:pointer;padding:6px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{padding-right:24px;border-right:1px solid var(--line);margin-right:24px}
.kpi:last-child{border-right:none;margin-right:0}
.kpi .v{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1.1;margin-top:8px}
.kpi .d{font-size:13px;margin-top:6px}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px}
.sec{display:flex;flex-direction:column;gap:14px;min-width:0}
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rows{display:flex;flex-direction:column;gap:12px}
.row{display:grid;grid-template-columns:150px minmax(0,1fr) 56px;align-items:center;gap:14px;font-size:13.5px}
.row .num{text-align:right}
.tbl a{color:var(--ink)} .tbl a:hover{color:var(--violet-deep)}
.tbl tr.link{cursor:pointer} .tbl tr.link:hover td{background:var(--bg-2)}
.flash{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;z-index:50;animation:fl 4s forwards}
@keyframes fl{0%,80%{opacity:1}100%{opacity:0;visibility:hidden}}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;color:var(--ink-2)}
input.input,select.input,textarea.input{height:40px;border:1px solid var(--line);border-radius:var(--r-ctl);padding:0 12px;font:inherit;font-size:14px;color:var(--ink);background:var(--bg);outline:none;width:100%}
textarea.input{height:auto;padding:10px 12px;min-height:80px;resize:vertical}
input.input:focus,select.input:focus,textarea.input:focus{border-color:var(--ink)}
input.input.sm{height:32px;font-size:13px}
.btn{cursor:pointer;font:inherit;font-weight:500}
.btn.danger{color:var(--bad)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;max-width:760px}
.form .full{grid-column:1/-1}
.form-actions{display:flex;gap:8px;grid-column:1/-1;padding-top:6px}
.empty{padding:40px;text-align:center;color:var(--ink-3);border:1px dashed var(--line);border-radius:14px}
.check{display:flex;align-items:center;gap:8px;font-size:14px}
.check input{width:16px;height:16px;accent-color:var(--ink)}
/* проверка визита */
.review{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:0;min-height:calc(100vh - 64px)}
.photo-wrap{padding:24px 32px;display:flex;flex-direction:column;gap:14px;min-width:0}
.photo{position:relative;border-radius:14px;background:var(--bg-2);overflow:hidden;aspect-ratio:4/3}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#e9e9ee}
.photo .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:13px}
.box{position:absolute;border:1.5px solid #6C4BD6;border-radius:4px}
.box.c{border-color:#A1A1A6;border-style:dashed}
.box .lb{position:absolute;left:-1.5px;top:-19px;height:17px;padding:0 5px;background:#6C4BD6;color:#fff;font-size:10.5px;font-weight:500;border-radius:4px;white-space:nowrap;line-height:17px}
.box.c .lb{background:#A1A1A6}
.thumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.thumb{width:72px;height:54px;border-radius:8px;background:var(--bg-2);border:1px solid var(--line);object-fit:cover;cursor:pointer}
.thumb.on{outline:2px solid var(--ink);outline-offset:-2px}
.panel{border-left:1px solid var(--line);display:flex;flex-direction:column}
.panel .sc{padding:22px 24px;display:flex;flex-direction:column;gap:20px;flex:1}
.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 12px;font-size:13.5px}
.kv .k{color:var(--ink-2)}
.sku{display:flex;align-items:center;gap:10px;min-height:34px;font-size:13.5px}
.sku .sw{width:8px;height:8px;border-radius:2px;background:#6C4BD6;flex:none}
.sku.c .sw{background:#A1A1A6}
.sku .n{margin-left:auto;color:var(--ink-2)}
.actions{padding:18px 24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;position:sticky;bottom:0;background:var(--bg)}
.share .l{display:flex;justify-content:space-between;font-size:13px}
.qlist{display:flex;flex-direction:column;gap:10px}
.q{display:grid;grid-template-columns:minmax(0,1fr) 140px 36px;gap:8px;align-items:center}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.login-left{background:#171717;color:#fff;padding:48px 56px;display:flex;flex-direction:column}
.login-left .claim{margin-top:auto;font-family:var(--display);font-weight:600;font-size:44px;line-height:1.08;letter-spacing:-.025em;max-width:560px}
.login-left .sub{margin-top:18px;font-size:16px;color:rgba(255,255,255,.62);max-width:480px;line-height:1.5}
.login-right{display:flex;align-items:center;justify-content:center;padding:40px}
.login-form{width:360px;display:flex;flex-direction:column;gap:14px}
@media (max-width:900px){.login-wrap{grid-template-columns:1fr}.login-left{display:none}.side{display:none}.two,.kpis{grid-template-columns:1fr}.review{grid-template-columns:1fr}.panel{border-left:none;border-top:1px solid var(--line)}}
