@import"https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--paper: #fafaf8;--paper-2: #f0f1ee;--paper-3: #e6e7e3;--ink: #0a0a0a;--ink-2: #3a3d42;--ink-3: #7a7e86;--line: rgba(10, 10, 10, .1);--line-2: rgba(10, 10, 10, .16);--accent: #3d5afe;--accent-2: #1a3afa;--accent-soft: rgba(61, 90, 254, .1);--ok: #0a8757;--warn: #c4502a;--side-w: 240px;--row-h: 34px;--header-h: 50px;--container-max: 1480px;--content-max: 1080px;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "Inter Tight", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius-none: 0;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 12px 32px -8px rgba(10, 10, 10, .18);--shadow-lg: 0 30px 60px -10px rgba(10, 10, 10, .3);--shadow-focus: 0 0 0 3px rgba(61, 90, 254, .2);--grid-bg: linear-gradient(to right, rgba(10, 10, 10, .04) 1px, transparent 1px), linear-gradient(to bottom, rgba(10, 10, 10, .04) 1px, transparent 1px);--grid-size: 48px 48px}[data-theme=dark]{--paper: #0d0e10;--paper-2: #15171a;--paper-3: #1c1f23;--ink: #f4f5f7;--ink-2: #c8ccd3;--ink-3: #7d828b;--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .14);--accent-soft: rgba(61, 90, 254, .18);--grid-bg: linear-gradient(to right, rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(to bottom, rgba(255, 255, 255, .04) 1px, transparent 1px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{margin:0;font-weight:500;letter-spacing:-.02em}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}img,svg{display:block;max-width:100%}code,kbd,samp,pre{font-family:var(--font-mono)}::selection{background:var(--accent-soft);color:var(--ink)}:root{--paper:#fafaf8;--paper-2:#f0f1ee;--paper-3:#e6e7e3;--ink:#0a0a0a;--ink-2:#3a3d42;--ink-3:#7a7e86;--line:rgba(10,10,10,.1);--line-2:rgba(10,10,10,.16);--accent:#3d5afe;--accent-2:#1a3afa;--accent-soft:rgba(61,90,254,.1);--ok:#0a8757;--warn:#c4502a;--row-h:34px;--side-w:240px;--side-w-collapsed:56px}[data-theme=dark]{--paper:#0d0e10;--paper-2:#15171a;--paper-3:#1c1f23;--ink:#f4f5f7;--ink-2:#c8ccd3;--ink-3:#7d828b;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--accent-soft:rgba(61,90,254,.18)}.app-shell *{box-sizing:border-box;margin:0;padding:0}.app-shell{height:100%;overflow:hidden}.app-shell{background:var(--paper);color:var(--ink);font-family:Inter Tight,system-ui,sans-serif;font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11","tnum"}.app-shell a{color:inherit;text-decoration:none}.app-shell button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.app-shell input,.app-shell select,.app-shell textarea{font:inherit;color:inherit;background:none;border:none;outline:none}.app-shell .mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.04em}.app-shell .eyebrow{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}.app-shell .kbd{display:inline-flex;align-items:center;gap:0;padding:1px 5px;border:1px solid var(--line-2);border-radius:3px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);background:var(--paper-2)}.app-shell .app{display:grid;grid-template-columns:var(--side-w) 1fr;height:100vh;width:100vw;position:relative}.app-shell .side-slot{position:relative;overflow:visible}.app-shell .side{background:var(--paper-2);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;transition:width .18s ease,box-shadow .18s ease;position:relative}.app-shell .flyout-hint{display:none}.app-shell .app.side-collapsed{grid-template-columns:var(--side-w-collapsed) 1fr}.app-shell .app.side-collapsed .side:hover{position:absolute;top:0;left:0;bottom:0;width:var(--side-w);z-index:50;box-shadow:16px 0 40px -12px #00000073}.app-shell .app.side-collapsed .side .flyout-hint{display:block;position:absolute;bottom:8px;left:0;right:0;text-align:center;font-family:JetBrains Mono,monospace;font-size:8.5px;color:var(--ink-3);white-space:nowrap;opacity:1;pointer-events:none;transition:opacity .15s}.app-shell .app.side-collapsed .side:hover .flyout-hint{opacity:0}.app-shell .app.side-collapsed .side .side-h{justify-content:center}.app-shell .app.side-collapsed .side .side-h .logo{gap:0}.app-shell .app.side-collapsed .side .side-h .logo-txt,.app-shell .app.side-collapsed .side .side-h .switch{display:none}.app-shell .app.side-collapsed .side:hover .side-h{justify-content:flex-start}.app-shell .app.side-collapsed .side:hover .side-h .logo{gap:8px}.app-shell .app.side-collapsed .side:hover .side-h .logo-txt,.app-shell .app.side-collapsed .side:hover .side-h .switch{display:inline}.app-shell .app.side-collapsed .side .side-search{display:none}.app-shell .app.side-collapsed .side:hover .side-search{display:block}.app-shell .app.side-collapsed .side .side-nav b{display:none}.app-shell .app.side-collapsed .side:hover .side-nav b{display:block}.app-shell .app.side-collapsed .side .side-nav a{justify-content:center;padding:7px 0}.app-shell .app.side-collapsed .side:hover .side-nav a{justify-content:flex-start;padding:6px 10px}.app-shell .app.side-collapsed .side .side-nav a .lbl,.app-shell .app.side-collapsed .side .side-nav a .num{display:none}.app-shell .app.side-collapsed .side:hover .side-nav a .lbl{display:inline}.app-shell .app.side-collapsed .side:hover .side-nav a .num{display:inline-block}.app-shell .app.side-collapsed .side .side-foot{flex-direction:column;gap:8px}.app-shell .app.side-collapsed .side .side-foot .who,.app-shell .app.side-collapsed .side .side-foot .gear{display:none}.app-shell .app.side-collapsed .side:hover .side-foot{flex-direction:row}.app-shell .app.side-collapsed .side:hover .side-foot .who{display:block}.app-shell .app.side-collapsed .side:hover .side-foot .gear{display:inline-flex}.app-shell .side-toggle-btn{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:var(--ink-2);border:1px solid var(--line-2);flex:0 0 26px}.app-shell .side-toggle-btn:hover{background:var(--paper-3)}.app-shell .side-toggle-btn svg{width:13px;height:13px;transition:transform .25s}.app-shell .app.side-collapsed .side-toggle-btn svg{transform:rotate(180deg)}.app-shell .side-h{padding:14px 16px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.app-shell .side-h .logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;letter-spacing:-.015em}.app-shell .side-h .logo svg{width:16px;height:16px;color:var(--accent)}.app-shell .side-h .switch{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border:1px solid var(--line);border-radius:3px}.app-shell .side-search{padding:10px 12px;border-bottom:1px solid var(--line)}.app-shell .side-search .sb{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--paper);border:1px solid var(--line);border-radius:5px}.app-shell .side-search .sb input{flex:1;font-size:12px}.app-shell .side-search .sb .kbd{font-size:9px}.app-shell .side-nav{flex:1;overflow-y:auto;padding:8px 8px 12px;display:flex;flex-direction:column;gap:1px}.app-shell .side-nav b{display:block;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin:14px 0 4px;padding:0 8px}.app-shell .side-nav a{display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:5px;color:var(--ink-2);font-size:12.5px;font-weight:450;transition:.12s}.app-shell .side-nav a:hover{background:var(--paper-3);color:var(--ink)}.app-shell .side-nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:500}.app-shell .side-nav a svg{width:14px;height:14px;flex:0 0 14px;opacity:.85}.app-shell .side-nav a .num{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);font-weight:500;background:var(--paper);border:1px solid var(--line);padding:0 5px;border-radius:3px;line-height:14px;min-width:20px;text-align:center}.app-shell .side-nav a.on .num{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell .side-foot{border-top:1px solid var(--line);padding:10px 12px;display:flex;align-items:center;gap:9px}.app-shell .side-foot .av{width:26px;height:26px;border-radius:5px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.app-shell .side-foot .who{flex:1;line-height:1.2}.app-shell .side-foot .who b{font-size:12px;font-weight:500;display:block}.app-shell .side-foot .who span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .side-foot .gear{color:var(--ink-3);padding:4px;border-radius:4px}.app-shell .side-foot .gear:hover{background:var(--paper-3);color:var(--ink)}.app-shell .main{display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}.app-shell .topbar{height:50px;flex:0 0 50px;display:flex;align-items:center;gap:14px;padding:0 22px;border-bottom:1px solid var(--line);background:var(--paper)}.app-shell .topbar .crumbs{display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em}.app-shell .topbar .crumbs b{color:var(--ink);font-weight:600}.app-shell .topbar .crumbs span{opacity:.5}.app-shell .topbar .actions{margin-left:auto;display:flex;align-items:center;gap:6px}.app-shell .app-toast-host{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:99;pointer-events:none}.app-shell .app-toast{background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:11px 18px;border-radius:999px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.app-shell .app-toast.on{opacity:1;transform:translateY(0)}.app-shell .btn{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line-2);border-radius:5px;font-size:12px;font-weight:500;background:transparent;color:var(--ink);transition:.12s}.app-shell .btn:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-shell .btn.acc{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell .btn.acc:hover{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.app-shell .btn.ghost{border-color:transparent;color:var(--ink-2)}.app-shell .btn.ghost:hover{background:var(--paper-2);color:var(--ink);border-color:transparent}.app-shell .btn .kbd{margin-left:4px}.app-shell .icon-btn{width:30px;height:30px;border-radius:5px;display:grid;place-items:center;color:var(--ink-2)}.app-shell .icon-btn:hover{background:var(--paper-2);color:var(--ink)}.app-shell .divider{width:1px;height:18px;background:var(--line)}.app-shell .view{flex:1;overflow:auto;position:relative}.app-shell .view>section{display:none}.app-shell .view>section.on{display:block}.app-shell .dash{padding:24px 28px 60px;max-width:1480px}.app-shell .dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.app-shell .dash-head h1{font-size:30px;font-weight:500;letter-spacing:-.025em;line-height:1.05}.app-shell .dash-head h1 em{font-style:normal;color:var(--accent);font-weight:300}.app-shell .dash-head .day{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .dash-head .day b{color:var(--ink);font-weight:600}.app-shell .kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);overflow:hidden}.app-shell .kpi{padding:18px 20px;border-right:1px solid var(--line);position:relative}.app-shell .kpi:last-child{border-right:none}.app-shell .kpi .lab{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;justify-content:space-between}.app-shell .kpi .v{font-size:34px;font-weight:500;letter-spacing:-.025em;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1}.app-shell .kpi .v em{font-style:normal;font-size:18px;color:var(--ink-3);font-weight:400;margin-left:4px}.app-shell .kpi .delta{margin-top:4px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ok);font-weight:600;letter-spacing:.04em}.app-shell .kpi .delta.neg{color:var(--warn)}.app-shell .kpi .spark{margin-top:12px;height:28px;display:flex;align-items:flex-end;gap:2px}.app-shell .kpi .spark i{flex:1;background:var(--accent);border-radius:1px;opacity:.7}.app-shell .kpi .spark i:last-child{opacity:1}.app-shell .dash-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;margin-top:24px}@media (max-width:1100px){.app-shell .dash-grid{grid-template-columns:1fr}}.app-shell .card{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.app-shell .card .ch{padding:12px 16px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.app-shell .card .ch h3{font-size:14px;font-weight:500;letter-spacing:-.005em;display:flex;align-items:center;gap:8px}.app-shell .card .ch h3 .badge{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--accent);color:#fff;padding:2px 6px;border-radius:3px;letter-spacing:.04em;font-weight:600;text-transform:uppercase}.app-shell .card .ch .acts{display:flex;gap:4px}.app-shell .card .ch .acts .lk{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding:3px 6px;border-radius:3px}.app-shell .card .ch .acts .lk:hover{color:var(--accent);background:var(--accent-soft)}.app-shell .card .cb{padding:12px 16px}.app-shell .today{display:flex;flex-direction:column}.app-shell .today .item{display:grid;grid-template-columns:46px 1fr 90px 28px;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer;transition:.1s}.app-shell .today .item:hover{background:var(--paper-3)}.app-shell .today .item:last-child{border-bottom:none}.app-shell .today .item .t{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink);font-weight:600;letter-spacing:.04em}.app-shell .today .item .t span{display:block;font-size:9px;color:var(--ink-3);font-weight:500;margin-top:1px}.app-shell .today .item .info b{font-weight:500;font-size:13px;display:block;letter-spacing:-.005em}.app-shell .today .item .info em{font-style:normal;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.04em}.app-shell .today .item .info .tags{display:flex;gap:4px;margin-top:3px}.app-shell .today .item .info .tags span{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--paper);border:1px solid var(--line);padding:1px 5px;border-radius:3px;color:var(--ink-2);letter-spacing:.04em}.app-shell .today .item .stat{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;text-align:right;padding:3px 7px;border-radius:3px;font-weight:600}.app-shell .today .item .stat.go{background:var(--accent);color:#fff}.app-shell .today .item .stat.ok{background:var(--ok);color:#fff}.app-shell .today .item .stat.todo{background:var(--paper);border:1px solid var(--line-2);color:var(--ink-2)}.app-shell .today .item .stat.warn{background:var(--warn);color:#fff}.app-shell .today .item .arr{color:var(--ink-3);text-align:right}.app-shell .alerts{display:flex;flex-direction:column;gap:0}.app-shell .alert{padding:10px 16px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:flex-start;font-size:12px;cursor:pointer}.app-shell .alert:hover{background:var(--paper-3)}.app-shell .alert:last-child{border-bottom:none}.app-shell .alert .dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:var(--ink-3)}.app-shell .alert.warn .dot{background:var(--warn)}.app-shell .alert.go .dot{background:var(--accent)}.app-shell .alert.ok .dot{background:var(--ok)}.app-shell .alert b{font-weight:500;display:block;margin-bottom:1px}.app-shell .alert span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .alert .ago{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.app-shell .funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:18px}.app-shell .funnel .s{padding:14px 16px;border-right:1px solid var(--line);position:relative;background:var(--paper-2)}.app-shell .funnel .s:last-child{border-right:none}.app-shell .funnel .s .lab{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .funnel .s .v{font-size:24px;font-weight:500;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums;line-height:1}.app-shell .funnel .s .arr{position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:var(--paper-2);border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg);z-index:2}.app-shell .funnel .s.cur{background:var(--accent-soft)}.app-shell .funnel .s.cur .lab{color:var(--accent)}.app-shell .funnel .s .pct{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;margin-top:2px;font-weight:600}.app-shell .ch-week{padding:14px 16px}.app-shell .ch-week .legend{display:flex;gap:14px;margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.app-shell .ch-week .legend i{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:2px;vertical-align:middle}.app-shell .ch-week .legend .a i{background:var(--accent)}.app-shell .ch-week .legend .b i{background:var(--ink-3)}.app-shell .ch-week .bars{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;height:140px}.app-shell .ch-week .bar{display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end}.app-shell .ch-week .bar .stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:1px}.app-shell .ch-week .bar .stack i{display:block;border-radius:2px}.app-shell .ch-week .bar .stack .a{background:var(--accent)}.app-shell .ch-week .bar .stack .b{background:var(--ink-3);opacity:.4}.app-shell .ch-week .bar .lab{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600;margin-top:4px}.app-shell .ch-week .bar .lab b{color:var(--ink);display:block}.app-shell .dash-grid-3{display:grid;grid-template-columns:1.25fr 1fr 1.05fr;gap:18px;margin-top:24px}@media (max-width:1300px){.app-shell .dash-grid-3{grid-template-columns:1fr 1fr}}@media (max-width:900px){.app-shell .dash-grid-3{grid-template-columns:1fr}}.app-shell .cal{padding:14px 16px 16px}.app-shell .cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.app-shell .cal-nav .mo{font-size:13px;font-weight:500;letter-spacing:-.005em}.app-shell .cal-nav .arrs{display:flex;gap:4px}.app-shell .cal-nav .arrs span{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:5px;cursor:pointer;color:var(--ink-2)}.app-shell .cal-nav .arrs span:hover{background:var(--paper-3);color:var(--ink)}.app-shell .cal-week{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}.app-shell .cal-week span{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);text-align:center;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.app-shell .cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.app-shell .cal-days .d{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:6px;font-size:11px;color:var(--ink-2);cursor:pointer;position:relative}.app-shell .cal-days .d:hover{background:var(--paper-3)}.app-shell .cal-days .d.out{color:var(--ink-3);opacity:.3;cursor:default}.app-shell .cal-days .d.out:hover{background:none}.app-shell .cal-days .d.today{background:var(--accent);color:#fff;font-weight:600}.app-shell .cal-days .d .dots{display:flex;gap:2px}.app-shell .cal-days .d .dots i{width:4px;height:4px;border-radius:50%;background:var(--accent)}.app-shell .cal-days .d.today .dots i{background:#fff}.app-shell .cal-days .d.busy .dots i:first-child{background:var(--warn)}.app-shell .cal-days .d.today.busy .dots i:first-child{background:#fff}.app-shell .cal-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.app-shell .cal-foot .sel{font-size:12px}.app-shell .cal-foot .sel b{display:block;font-weight:500;letter-spacing:-.005em}.app-shell .cal-foot .sel em{font-style:normal;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .cal-foot .lk{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding:3px 6px;border-radius:3px;cursor:pointer}.app-shell .cal-foot .lk:hover{color:var(--accent);background:var(--accent-soft)}.app-shell .cal-legend{display:flex;gap:12px;margin-top:10px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.app-shell .cal-legend span{display:flex;align-items:center;gap:4px}.app-shell .cal-legend i{width:4px;height:4px;border-radius:50%;background:var(--accent)}.app-shell .cal-legend .w i{background:var(--warn)}.app-shell .view-tabs{display:flex;align-items:center;gap:2px;height:41px;padding:0 22px;background:var(--paper);box-sizing:border-box}.app-shell .vtab{display:flex;align-items:center;gap:6px;height:100%;padding:0 10px;font-size:12.5px;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;box-sizing:border-box}.app-shell .vtab:hover{color:var(--ink)}.app-shell .vtab .n{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);background:var(--paper-2);border-radius:99px;padding:1px 6px;font-weight:600}.app-shell .vtab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.app-shell .vtab.on .n{color:var(--accent);background:var(--accent-soft)}.app-shell .vtab.add{color:var(--ink-3);font-size:12px}.app-shell .vtab.add:hover{color:var(--accent)}.app-shell .tab-toolbar{display:flex;align-items:center;gap:8px;padding:10px 22px;border-bottom:1px solid var(--line);background:var(--paper)}.app-shell .tab-toolbar .search{flex:0 0 280px;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:5px;background:var(--paper-2)}.app-shell .tab-toolbar .search input{flex:1;font-size:12px}.app-shell .tab-toolbar .filt{display:flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--ink-2);background:var(--paper-2);cursor:pointer}.app-shell .tab-toolbar .filt:hover{border-color:var(--ink);color:var(--ink)}.app-shell .tab-toolbar .filt b{color:var(--ink);font-weight:500}.app-shell .tab-toolbar .filt.acc{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell .tab-toolbar .filt.acc b{color:var(--accent)}.app-shell .tab-toolbar .info{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .tab-toolbar .info b{color:var(--ink)}.app-shell .tab-toolbar .ttb-icontools{display:flex;align-items:center;gap:2px;background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:3px}.app-shell .tab-toolbar .ttb-icontools .it{width:26px;height:24px;display:grid;place-items:center;border-radius:5px;border:none;background:none;color:var(--ink-3);cursor:pointer;flex:0 0 auto;font-family:inherit}.app-shell .tab-toolbar .ttb-icontools .it:hover,.app-shell .tab-toolbar .ttb-icontools .it.on{background:var(--accent-soft);color:var(--accent)}.app-shell .tab-toolbar .ttb-icontools .it svg{display:block}.app-shell .tab-toolbar .ttb-newbtn{display:flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:11.5px;font-weight:600;cursor:pointer;flex:0 0 auto;font-family:inherit}.app-shell .tab-toolbar .ttb-newbtn:hover{background:var(--accent-2)}.app-shell .sel-bar{display:none;align-items:center;gap:10px;padding:8px 22px;border-bottom:1px solid var(--accent);background:var(--accent-soft);font-family:JetBrains Mono,monospace;font-size:11px;color:var(--accent);letter-spacing:.06em;font-weight:600;text-transform:uppercase}.app-shell .sel-bar.on{display:flex}.app-shell .sel-bar .ct{background:var(--accent);color:#fff;padding:3px 8px;border-radius:3px}.app-shell .sel-bar .acts{margin-left:auto;display:flex;gap:4px}.app-shell .sel-bar .acts .b{padding:5px 10px;border:1px solid var(--accent);border-radius:4px;background:var(--paper);color:var(--accent);font-size:11px;font-weight:500;letter-spacing:.04em}.app-shell .sel-bar .acts .b:hover{background:var(--accent);color:#fff}.app-shell .grid-wrap{position:relative;height:calc(100vh - 101px);overflow:auto}.app-shell section[data-screen=missions] .view-tabs{position:sticky;top:0;z-index:9}.app-shell section[data-screen=missions] .tab-toolbar{position:sticky;top:41px;z-index:9}.app-shell section[data-screen=missions] .sel-bar{position:sticky;top:94px;z-index:8;height:44px;box-sizing:border-box;background:linear-gradient(var(--accent-soft),var(--accent-soft)) var(--paper)}.app-shell section[data-screen=missions] .grid-gap{position:sticky;top:94px;z-index:5;height:18px;background:var(--paper)}.app-shell section[data-screen=missions] .sel-bar.on~.grid-gap{top:138px}.app-shell section[data-screen=missions]:has(#gridWrap.chrono-active) .grid-gap{display:none}.app-shell #gridWrap .grid .h{top:112px}.app-shell section[data-screen=missions] .sel-bar.on~#gridWrap .grid .h{top:156px}.app-shell #gridWrap{height:auto;overflow:visible;box-sizing:border-box;padding:0 24px 24px}.app-shell #gridWrap.chrono-active{display:none}.app-shell #gridWrap .grid{border:1px solid var(--line-2);border-radius:10px}.app-shell #gridWrap .grid .h{box-shadow:0 -1px 0 var(--line-2)}.app-shell #gridWrap .grid>.h:nth-child(2){border-top-left-radius:10px}.app-shell #gridWrap .grid>.h.h-acts{border-top-right-radius:10px}.app-shell #gridWrap .grid>.h:nth-child(2),.app-shell #gridWrap .grid>.h.h-acts,.app-shell #gridWrap.selecting .grid>.h:first-child{background:transparent}.app-shell #gridWrap .grid>.h:nth-child(2):before,.app-shell #gridWrap .grid>.h.h-acts:before,.app-shell #gridWrap.selecting .grid>.h:first-child:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-2);border-radius:inherit;z-index:-1}.app-shell #gridWrap .grid>.h:nth-child(2):before,.app-shell #gridWrap.selecting .grid>.h:first-child:before{top:-1px;right:0;bottom:0;left:-1px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell #gridWrap .grid>.h.h-acts:before{top:-1px;right:-1px;bottom:0;left:0;border-top:1px solid var(--line-2);border-right:1px solid var(--line-2)}.app-shell #gridWrap.selecting .grid>.h:nth-child(2):before{top:-1px;right:0;bottom:0;left:0;border-left:none;border-top-left-radius:0}.app-shell #gridWrap .grid>.h:nth-child(2):after,.app-shell #gridWrap.selecting .grid>.h:first-child:after{content:"";position:absolute;top:-1px;right:0;bottom:0;left:-1px;background:var(--paper);z-index:-2}.app-shell #gridWrap .grid>.h.h-acts:after{content:"";position:absolute;top:-1px;right:-1px;bottom:0;left:0;background:var(--paper);z-index:-2}.app-shell #gridWrap.selecting .grid>.h:nth-child(2):after{top:-1px;right:0;bottom:0;left:0}.app-shell #gridWrap .grid>.row:last-of-type>.c:nth-child(2){border-bottom-left-radius:10px}.app-shell #gridWrap .grid>.row:last-of-type>.c:last-child{border-bottom-right-radius:10px}.app-shell #gridWrap.selecting .grid>.h:nth-child(2){border-top-left-radius:0}.app-shell #gridWrap.selecting .grid>.h:first-child{border-top-left-radius:10px}.app-shell #gridWrap.selecting .grid>.row:last-of-type>.c:nth-child(2){border-bottom-left-radius:0}.app-shell #gridWrap.selecting .grid>.row:last-of-type>.c:first-child{border-bottom-left-radius:10px}.app-shell section[data-screen=clients] .view-tabs,.app-shell section[data-screen=diagnostic] .view-tabs,.app-shell section[data-screen=rapport] .view-tabs,.app-shell section[data-screen=catalogs] .view-tabs{position:sticky;top:0;z-index:9}.app-shell section[data-screen=clients] .tab-toolbar,.app-shell section[data-screen=diagnostic] .tab-toolbar,.app-shell section[data-screen=rapport] .tab-toolbar,.app-shell section[data-screen=catalogs] .tab-toolbar{position:sticky;top:41px;z-index:9}.app-shell section[data-screen=clients] .sel-bar,.app-shell section[data-screen=diagnostic] .sel-bar{position:sticky;top:94px;z-index:8;height:44px;box-sizing:border-box;background:linear-gradient(var(--accent-soft),var(--accent-soft)) var(--paper)}.app-shell section[data-screen=clients] .grid-gap,.app-shell section[data-screen=diagnostic] .grid-gap,.app-shell section[data-screen=rapport] .grid-gap,.app-shell section[data-screen=catalogs] .grid-gap{position:sticky;top:94px;z-index:5;height:18px;background:var(--paper)}.app-shell section[data-screen=clients] .sel-bar.on~.grid-gap,.app-shell section[data-screen=diagnostic] .sel-bar.on~.grid-gap{top:138px}.app-shell .tblframe .grid .h{top:112px}.app-shell section[data-screen=clients] .sel-bar.on~.tblframe .grid .h,.app-shell section[data-screen=diagnostic] .sel-bar.on~.tblframe .grid .h{top:156px}.app-shell .tblframe{height:auto;overflow:visible;box-sizing:border-box;padding:0 24px 24px}.app-shell .tblframe .grid{border:1px solid var(--line-2);border-radius:10px}.app-shell .tblframe .grid .h{box-shadow:0 -1px 0 var(--line-2)}.app-shell .tblframe .grid .h,.app-shell .tblframe .grid .c{border-right:none}.app-shell .tblframe .grid>.h:first-child{border-top-left-radius:10px}.app-shell .tblframe .grid>.h:last-child{border-top-right-radius:10px}.app-shell .tblframe .grid>.h:first-child,.app-shell .tblframe .grid>.h:last-child{background:transparent}.app-shell .tblframe .grid>.h:first-child:before,.app-shell .tblframe .grid>.h:last-child:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-2);border-radius:inherit;z-index:-1}.app-shell .tblframe .grid>.h:first-child:before{top:-1px;right:0;bottom:0;left:-1px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell .tblframe .grid>.h:last-child:before{top:-1px;right:-1px;bottom:0;left:0;border-top:1px solid var(--line-2);border-right:1px solid var(--line-2)}.app-shell .tblframe .grid>.h:first-child:after,.app-shell .tblframe .grid>.h:last-child:after{content:"";position:absolute;z-index:-2;background:var(--paper)}.app-shell .tblframe .grid>.h:first-child:after{top:-1px;right:0;bottom:0;left:-1px}.app-shell .tblframe .grid>.h:last-child:after{top:-1px;right:-1px;bottom:0;left:0}.app-shell .tblframe .grid>.row:last-of-type>.c:first-child{border-bottom-left-radius:10px}.app-shell .tblframe .grid>.row:last-of-type>.c:last-child{border-bottom-right-radius:10px}.app-shell #gridContacts{grid-template-columns:1.15fr 100px 140px 1.3fr 150px 55px 50px 104px}.app-shell #gridContacts.selecting{grid-template-columns:36px 1.15fr 100px 140px 1.3fr 150px 55px 50px 104px}.app-shell #gridDiag{grid-template-columns:80px 1fr 100px 110px 170px 120px 100px 90px 104px}.app-shell #gridDiag.selecting{grid-template-columns:36px 80px 1fr 100px 110px 170px 120px 100px 90px 104px}.app-shell #gridRep{grid-template-columns:90px 1fr 170px 150px 100px 90px 110px 100px 104px}.app-shell #gridRep.selecting{grid-template-columns:36px 90px 1fr 170px 150px 100px 90px 110px 100px 104px}.app-shell #gridInsp{grid-template-columns:70px 1fr 120px 100px 90px 100px 100px 104px}.app-shell #gridInsp.selecting{grid-template-columns:36px 70px 1fr 120px 100px 90px 100px 100px 104px}.app-shell .grid.selgrid>.h:first-child,.app-shell .grid.selgrid>.row>.c:first-child{display:none}.app-shell .grid.selgrid.selecting>.h:first-child,.app-shell .grid.selgrid.selecting>.row>.c:first-child{display:flex}.app-shell .tblframe .grid.selgrid:not(.selecting)>.h:nth-child(2){border-top-left-radius:10px;background:transparent}.app-shell .tblframe .grid.selgrid:not(.selecting)>.h:nth-child(2):before{content:"";position:absolute;top:-1px;right:0;bottom:0;left:-1px;background:var(--paper-2);border-radius:inherit;z-index:-1;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell .tblframe .grid.selgrid:not(.selecting)>.h:nth-child(2):after{content:"";position:absolute;top:-1px;right:0;bottom:0;left:-1px;background:var(--paper);z-index:-2}.app-shell .tblframe .grid.selgrid:not(.selecting)>.row:last-of-type>.c:nth-child(2){border-bottom-left-radius:10px}.app-shell .chrono-wrap{display:none;height:calc(100vh - 142px);box-sizing:border-box;padding:18px 24px 24px;overflow-y:auto}.app-shell .chrono-wrap.on{display:block}.app-shell .chrono-empty{padding:40px;text-align:center;color:var(--ink-3);font-size:12.5px}.app-shell .chrono-bucket{margin-bottom:16px;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;background:var(--paper)}.app-shell .chrono-bucket:last-child{margin-bottom:0}.app-shell .chrono-h{display:flex;align-items:center;gap:9px;padding:11px 16px;cursor:pointer;background:var(--paper-2);-webkit-user-select:none;user-select:none}.app-shell .chrono-h:hover{background:var(--paper-3)}.app-shell .chrono-h .ic{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.app-shell .chrono-h .ic.late{background:var(--warn)}.app-shell .chrono-h .ic.today{background:var(--accent)}.app-shell .chrono-h .ic.week{background:#a07300}.app-shell .chrono-h .ic.later{background:var(--ink-3)}.app-shell .chrono-h b{font-size:13px;font-weight:600;flex:1}.app-shell .chrono-h .cnt{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:1px 8px;font-weight:600}.app-shell .chrono-h .chev{width:14px;height:14px;color:var(--ink-3);transition:transform .15s;flex:0 0 14px}.app-shell .chrono-bucket.closed .chrono-h .chev{transform:rotate(-90deg)}.app-shell .chrono-bucket.closed .chrono-rows{display:none}.app-shell .crow{display:flex;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid var(--line);cursor:pointer}.app-shell .crow:hover{background:var(--paper-2)}.app-shell .crow .cthumbs{display:flex;gap:5px;flex:0 0 auto}.app-shell .crow .thumb{position:relative;width:38px;height:26px;border-radius:4px;border:1px solid var(--line-2);display:grid;place-items:center;font-size:11px;overflow:visible}.app-shell .crow .thumb.cov{color:#fff}.app-shell .crow .thumb.pln{color:var(--ink-3)}.app-shell .crow .cmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.app-shell .crow .ctitle{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell .crow .ctitle i{font-style:normal;color:var(--ink-2);font-weight:500}.app-shell .crow .csub{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell .crow .cright{display:flex;align-items:center;gap:14px;flex:0 0 auto}.app-shell .crow .cdl{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);width:36px;text-align:center}.app-shell .crow .cdl.late{color:var(--warn);font-weight:600}.app-shell .crow .cdl.soon{color:#a07300;font-weight:600}.app-shell .crow .camt{font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;width:80px;text-align:right}.app-shell .crow .camt em{font-style:normal;color:var(--ink-3);font-weight:500;font-size:9.5px;margin-right:2px}.app-shell .crow .cprog{width:46px;flex:0 0 46px}.app-shell .crow .cprog .pb{width:100%;height:5px;border-radius:3px;background:var(--paper-2);overflow:hidden;position:relative}.app-shell .crow .cprog .pb i{display:block;height:100%;background:var(--accent);border-radius:3px}.app-shell .crow .cprog .pb i.ok{background:var(--ok)}.app-shell .grid{display:grid;grid-template-columns:90px 90px minmax(70px,90px) minmax(150px,200px) minmax(120px,1fr) minmax(88px,100px) minmax(100px,110px) minmax(60px,72px) minmax(105px,120px) minmax(66px,75px) minmax(56px,65px) minmax(70px,85px) 128px;font-size:12px;font-variant-numeric:tabular-nums;position:relative}.app-shell #gridWrap.selecting .grid{grid-template-columns:36px 90px 90px minmax(70px,90px) minmax(150px,200px) minmax(120px,1fr) minmax(88px,100px) minmax(100px,110px) minmax(60px,72px) minmax(105px,120px) minmax(66px,75px) minmax(56px,65px) minmax(70px,85px) 128px}.app-shell .grid .c.cover,.app-shell .grid .c.plan{justify-content:center;padding:4px 6px}.app-shell .grid .c.cover .thumb,.app-shell .grid .c.plan .thumb{position:relative;width:75px;height:42px;flex:0 0 75px;border-radius:4px;border:1px solid var(--line-2);display:grid;place-items:center;font-size:13px;overflow:hidden}.app-shell .grid .c.cover .thumb{color:#fff}.app-shell .grid .c.plan .thumb{color:var(--ink-3)}.app-shell .thumb.cov{object-fit:cover;display:block}.app-shell .thumb.pln{object-fit:contain;background-color:#fff;display:block}.app-shell .thumb.cov.empty,.app-shell .thumb.pln.empty{background-color:var(--paper-2)}.app-shell #gridWrap .grid .h:first-child,.app-shell #gridWrap .grid .row>.c:first-child{display:none}.app-shell #gridWrap.selecting .grid .h:first-child,.app-shell #gridWrap.selecting .grid .row>.c:first-child{display:flex}.app-shell .grid .h{position:sticky;top:0;background:var(--paper-2);border-bottom:1px solid var(--line-2);z-index:5;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:9px 10px;display:flex;align-items:center;gap:6px;border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;cursor:pointer}.app-shell #gridWrap .grid .h,.app-shell #gridWrap .grid .c{border-right:none}.app-shell #gridWrap .grid .h[data-sort=prog],.app-shell #gridWrap .grid .c.prog{border-right:1px solid var(--line)}.app-shell .grid .h:hover{color:var(--ink);background:var(--paper-3)}.app-shell .grid .h .sort{opacity:.4}.app-shell .grid .h.s .sort{opacity:1;color:var(--accent)}.app-shell .grid .c{padding:0 10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:center;height:var(--row-h);background:var(--paper);transition:background .1s}.app-shell .grid .c.sel{background:var(--accent-soft)}.app-shell .grid .row-end{grid-column:1/-1;border-bottom:1px solid var(--line);background:transparent;display:none}.app-shell #gridWrap .grid .c{height:50px}.app-shell .grid .c .ck{width:14px;height:14px;border:1.5px solid var(--ink-3);border-radius:3px;position:relative;cursor:pointer;flex:0 0 14px}.app-shell .grid .c .ck.on{background:var(--accent);border-color:var(--accent)}.app-shell .grid .c .ck.on:after{content:"";position:absolute;left:3px;top:.5px;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.app-shell .grid .c.ref{font-family:JetBrains Mono,monospace;font-weight:600;letter-spacing:.04em;color:var(--ink)}.app-shell .grid .c.addr b{font-weight:500}.app-shell .grid .c.addr em{font-style:normal;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:10px;margin-left:6px;letter-spacing:.04em}.app-shell .grid .c.cli{font-weight:450}.app-shell .grid .c.cli em{font-style:normal;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.04em;margin-left:6px}.app-shell #gridWrap .grid .c.ref{font-weight:400}.app-shell #gridWrap .grid .c.addr,.app-shell #gridWrap .grid .c.cli{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;overflow:hidden;min-width:0}.app-shell #gridWrap .grid .c.addr b,.app-shell #gridWrap .grid .c.cli,.app-shell #gridWrap .grid .c.cli b{font-weight:400}.app-shell #gridWrap .grid .c.addr em,.app-shell #gridWrap .grid .c.cli em{margin-left:0}.app-shell #gridWrap .grid .c.addr b,.app-shell #gridWrap .grid .c.addr em,.app-shell #gridWrap .grid .c.cli b,.app-shell #gridWrap .grid .c.cli em{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell .grid .c.dt{font-family:JetBrains Mono,monospace;color:var(--ink-2);font-size:11px;letter-spacing:.04em}.app-shell .grid .c.tags{flex-wrap:nowrap;overflow:hidden;gap:3px}.app-shell .grid .c.tags .t{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--paper-2);border:1px solid var(--line);padding:1px 5px;border-radius:3px;color:var(--ink-2);letter-spacing:.04em;font-weight:600;flex:0 0 auto}.app-shell .grid .c.tags .t.warn{background:#fbe8de;color:var(--warn);border-color:#e6c2af}[data-theme=dark] .app-shell .grid .c.tags .t.warn{background:#3a1a0d;border-color:#5a2814;color:#ffae80}.app-shell .grid .c.team{gap:4px}.app-shell .grid .c.team .av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600;color:#fff;flex:0 0 auto}.app-shell .grid .c.stat{justify-content:flex-start}.app-shell .grid .c.stat .pill{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:3px;font-weight:600;display:inline-flex;align-items:center;gap:5px}.app-shell .grid .c.stat .pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.app-shell .pill.t-terrain{background:#fbe8de;color:var(--warn)}.app-shell .pill.t-labo{background:#fff5d6;color:#a07300}.app-shell .pill.t-rapport{background:var(--accent-soft);color:var(--accent)}.app-shell .pill.t-envoye{background:#dcf3e8;color:var(--ok)}.app-shell .pill.t-attente{background:var(--paper-2);color:var(--ink-3);border:1px solid var(--line)}.app-shell .pill.t-regie{background:var(--accent-soft);color:var(--accent)}.app-shell .pill.t-client{background:#dcf3e8;color:var(--ok)}[data-theme=dark] .app-shell .pill.t-terrain{background:#3a1a0d;color:#ffae80}[data-theme=dark] .app-shell .pill.t-labo{background:#3a2c08;color:#f5cf6c}[data-theme=dark] .app-shell .pill.t-envoye,[data-theme=dark] .app-shell .pill.t-client{background:#0d2a1d;color:#5fdca2}.app-shell .grid .c.name{gap:0}.app-shell .grid .c.name .ph{width:19px;height:19px;border-radius:5px;background:var(--paper-3);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:700;color:var(--ink-2);margin-right:8px;flex:0 0 19px}.app-shell .grid .c.phone{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-2)}.app-shell .grid .c.miss{gap:3px}.app-shell .grid .c.miss .t{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--paper-2);border:1px solid var(--line);padding:1px 5px;border-radius:3px;color:var(--ink-2);font-weight:600;flex:0 0 auto}.app-shell .grid .c.lang{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3)}.app-shell .grid .c.fav{justify-content:center;color:#e6b800;cursor:pointer;font-size:14px}.app-shell .grid .c.amt{justify-content:flex-end;font-family:JetBrains Mono,monospace;font-weight:600;letter-spacing:.04em}.app-shell #gridWrap .grid .c.amt{font-weight:400}.app-shell .grid .c.amt em{font-style:normal;color:var(--ink-3);font-weight:500;font-size:10px;margin-right:3px}.app-shell .grid .c.dl{justify-content:center;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.04em}.app-shell .grid .c.dl.late{color:var(--warn);font-weight:600}.app-shell .grid .c.dl.soon{color:#a07300;font-weight:600}.app-shell .grid .c.prog{padding:0 10px;align-items:center}.app-shell .grid .c.prog .pb{width:100%;height:5px;border-radius:3px;background:var(--paper-2);overflow:hidden;position:relative}.app-shell .grid .c.prog .pb i{display:block;height:100%;background:var(--accent);border-radius:3px}.app-shell .grid .c.prog .pb i.ok{background:var(--ok)}.app-shell .grid .c.prog em{font-style:normal;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);position:absolute;right:0;top:-12px;letter-spacing:.04em;font-weight:600}.app-shell .grid .c.menu{justify-content:center;color:var(--ink-3);cursor:pointer}.app-shell .grid .c.menu:hover{color:var(--ink)}.app-shell .grid .c .row-act{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid var(--line-2);border-radius:4px;font-size:10.5px;font-weight:500;color:var(--accent);background:var(--paper);cursor:pointer;white-space:nowrap;font-family:inherit}.app-shell .grid .c .row-act:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell .grid .c.acts{gap:6px;justify-content:center;padding:0 8px}.app-shell .grid .c.acts .racbtn{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);color:var(--ink-3);font-size:11px;cursor:pointer;font-family:inherit;line-height:1}.app-shell .grid .c.acts .racbtn svg{display:block}.app-shell .grid .c.acts .racbtn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.app-shell .grid .c.acts .racbtn.ghost{opacity:.35;cursor:default;pointer-events:none}.app-shell .grid .c.acts .racbtn.del:hover{background:#fbe3e3;color:#c0392b;border-color:#c0392b}.app-shell .grid .c.acts .racbtn.del.confirm{width:auto;padding:0 8px;border-radius:11px;background:#c0392b;color:#fff;border-color:#c0392b;font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.app-shell .grid .h.h-acts{position:sticky;right:0;z-index:6;justify-content:center;box-shadow:0 -1px 0 var(--line-2),-6px 0 6px -6px #0a0a0a26}.app-shell .grid .c.acts{position:sticky;right:0;z-index:4;box-shadow:-6px 0 6px -6px #0a0a0a26}.app-shell .tblframe .grid .h.h-acts,.app-shell .tblframe .grid .c.acts{right:24px}.app-shell .edit-drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120f47;z-index:40;opacity:0;pointer-events:none;transition:opacity .15s}.app-shell .edit-drawer-bg.on{opacity:1;pointer-events:auto}.app-shell .edit-drawer{position:fixed;top:0;right:0;bottom:0;width:400px;background:var(--paper);border-left:1px solid var(--line-2);box-shadow:-24px 0 48px -18px #0a0a0a40;z-index:41;display:flex;flex-direction:column;transform:translate(100%);transition:transform .18s ease}.app-shell .edit-drawer.on{transform:translate(0)}.app-shell .edit-drawer-h{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.app-shell .edit-drawer-h b{font-size:14.5px;display:block}.app-shell .edit-drawer-h span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .edit-drawer-h .x{margin-left:auto;color:var(--ink-3);cursor:pointer;font-size:16px;line-height:1;padding:4px}.app-shell .edit-drawer-h .x:hover{color:var(--ink)}.app-shell .edit-drawer-b{padding:16px 18px;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto}.app-shell .edit-field{display:flex;flex-direction:column;gap:4px}.app-shell .edit-field .lab{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell .edit-field input,.app-shell .edit-field select{padding:7px 10px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:#fff;font-family:inherit}.app-shell .edit-field input:focus,.app-shell .edit-field select:focus{border-color:var(--accent)}.app-shell .edit-field input:disabled{background:var(--paper-2);color:var(--ink-3);cursor:not-allowed}.app-shell .edit-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-shell .edhero-block{display:flex;flex-direction:column;gap:6px}.app-shell .edhero-block>.lab{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell .edhero-car{position:relative;height:128px;border-radius:8px;overflow:hidden;border:1px solid var(--line-2);cursor:pointer;background:var(--paper-2)}.app-shell .edhero-img{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:8px 10px;color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;transition:background-image .15s;background-size:cover;background-position:center;text-shadow:0 1px 4px rgba(10,10,10,.65)}.app-shell .edhero-car.plan .edhero-img{color:var(--ink-2);background-color:#fff;background-size:contain;background-repeat:no-repeat;background-position:center;text-shadow:none}.app-shell .edhero-car.empty{cursor:default}.app-shell .edhero-car.empty .edhero-img{align-items:center;justify-content:center;color:var(--ink-3);font-size:11px;font-family:Inter Tight,sans-serif;font-weight:500;background:var(--paper-2)!important}.app-shell .edhero-arrow{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:#0a0a0a6b;color:#fff;display:grid;place-items:center;cursor:pointer;font-size:13px;transition:background .12s}.app-shell .edhero-arrow:hover{background:#0a0a0aad}.app-shell .edhero-arrow.left{left:7px}.app-shell .edhero-arrow.right{right:7px}.app-shell .edhero-arrow.hidden{display:none}.app-shell .edhero-dots{position:absolute;bottom:7px;left:0;right:0;display:flex;justify-content:center;gap:4px}.app-shell .edhero-dots i{width:5px;height:5px;border-radius:50%;background:#ffffff73}.app-shell .edhero-dots i.on{background:#fff;width:13px;border-radius:3px}.app-shell .edhero-car.plan .edhero-dots i{background:#0a0a0a33}.app-shell .edhero-car.plan .edhero-dots i.on{background:var(--ink-2)}.app-shell .edhero-meta{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:var(--ink-3)}.app-shell .edhero-meta b{color:var(--ink-2);font-weight:600}.app-shell .edhero-hint{font-size:9.5px;color:var(--accent)}.app-shell .ed-picker{position:fixed;top:0;bottom:0;right:400px;width:320px;background:var(--paper);border-left:1px solid var(--line-2);box-shadow:-18px 0 40px -16px #0a0a0a4d;z-index:41;display:flex;flex-direction:column;transform:translate(24px);opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease}.app-shell .ed-picker.on{transform:translate(0);opacity:1;pointer-events:auto}.app-shell .ed-picker-h{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.app-shell .ed-picker-h b{font-size:13px;flex:1}.app-shell .ed-picker-h .x{cursor:pointer;color:var(--ink-3);font-size:15px;padding:3px}.app-shell .ed-picker-h .x:hover{color:var(--ink)}.app-shell .ed-picker-b{padding:14px 16px;overflow-y:auto;flex:1}.app-shell .ed-picker-hint{font-size:11px;color:var(--ink-3);margin-bottom:10px;line-height:1.5}.app-shell .ed-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.app-shell .ed-picker-grid .item{position:relative;aspect-ratio:4/3;border-radius:6px;border:2px solid transparent;cursor:pointer;overflow:hidden;background:var(--paper-2)}.app-shell .ed-picker-grid .item.pln{background:#fff;border-color:var(--line-2)}.app-shell .ed-picker-grid .item-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.app-shell .ed-picker-grid .item.pln .item-img{object-fit:contain}.app-shell .ed-picker-grid .item-lab{position:absolute;left:5px;bottom:5px;color:#fff;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;text-shadow:0 1px 3px rgba(10,10,10,.6);z-index:1}.app-shell .ed-picker-grid .item.pln .item-lab{color:var(--ink-2);text-shadow:none}.app-shell .ed-picker-grid .item.pln.active,.app-shell .ed-picker-grid .item.active{border-color:var(--accent)}.app-shell .ed-picker-grid .item.active:after{content:"✓";position:absolute;top:4px;right:4px;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:9px;z-index:2}.app-shell .edit-chips{display:flex;flex-wrap:wrap;gap:6px}.app-shell .edit-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:99px;font-size:11.5px;color:var(--ink-2);cursor:pointer;background:#fff;-webkit-user-select:none;user-select:none}.app-shell .edit-chip input{width:12px;height:12px;accent-color:var(--accent)}.app-shell .edit-chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:500}.app-shell .edit-drawer-f{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:8px}.app-shell .edit-drawer-f button{flex:1;justify-content:center}.app-shell .cblock-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:199;display:none}[data-theme=dark] .app-shell .cblock-veil{background:#0009}.app-shell .cblock-veil.on{display:block}.app-shell .cblock{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:460px;max-width:92vw;max-height:86vh;overflow:auto;background:var(--paper);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 30px 60px -10px #0a0a0a59;z-index:200;display:none}.app-shell .cblock.on{display:block}.app-shell .cblock-h{padding:18px 20px 2px;display:flex;align-items:flex-start;gap:10px}.app-shell .cblock-h svg{flex:0 0 auto;color:var(--warn);margin-top:1px}.app-shell .cblock-h b{font-size:14.5px;font-weight:600;display:block}.app-shell .cblock-h span{font-size:12px;color:var(--ink-2)}.app-shell .cblock-body{padding:8px 20px 2px;font-size:12.5px;color:var(--ink-2);line-height:1.5}.app-shell .cblock-miss{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}.app-shell .cblock-miss .t{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:99px;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line)}.app-shell .cblock-choices{padding:12px 20px 4px;display:flex;flex-direction:column;gap:8px}.app-shell .cblock-ch{border:1px solid var(--line-2);border-radius:8px;padding:11px 13px;cursor:pointer;transition:.12s}.app-shell .cblock-ch:hover,.app-shell .cblock-ch.on{border-color:var(--accent);background:var(--accent-soft)}.app-shell .cblock-ch b{font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:6px;color:var(--ink)}.app-shell .cblock-ch p{font-size:11.5px;color:var(--ink-2);margin:3px 0 0}.app-shell .cblock-opts{display:none;margin-top:9px;max-height:130px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.app-shell .cblock-ch.on .cblock-opts{display:block}.app-shell .cblock-opt{padding:7px 9px;font-size:12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line)}.app-shell .cblock-opt:last-child{border-bottom:none}.app-shell .cblock-opt:hover{background:var(--paper-2)}.app-shell .cblock-opt.on{background:var(--accent-soft);color:var(--accent);font-weight:500}.app-shell .cblock-opt small{color:var(--ink-3);font-weight:400}.app-shell .cblock-opt.empty{color:var(--ink-3);cursor:default}.app-shell .cblock-opt.empty:hover{background:transparent}.app-shell .cblock-archive{display:block;text-align:center;font-size:11.5px;color:var(--ink-3);padding:12px 20px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.app-shell .cblock-archive:hover{color:var(--warn)}.app-shell .cblock-f{padding:14px 20px 18px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--line);margin-top:12px}.app-shell .cblock-f .btn{justify-content:center}.app-shell #excelModeBtn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell .grid .row{display:contents}.app-shell .grid .row:hover .c{background:var(--paper-2)}.app-shell .grid .row.sel .c{background:var(--accent-soft)}.app-shell .grid .row.editing .c.editing{background:#fff;outline:2px solid var(--accent);outline-offset:-2px;z-index:4;position:relative}[data-theme=dark] .app-shell .grid .row.editing .c.editing{background:var(--paper-3)}.app-shell .grid .row.editing .c.editing input{width:100%;font-size:12px;background:transparent;border:none;outline:none;color:inherit;font-family:inherit;font-weight:inherit;letter-spacing:inherit}.app-shell .grid:focus{outline:none}.app-shell .grid .c.nav-active{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft);z-index:3;position:relative}.app-shell .grid.nav-on:before{content:"Mode édition tableur · ↑↓←→ naviguer · Entrée ou taper pour modifier · Échap pour sortir";display:flex;align-items:center;height:24px;box-sizing:border-box;background:var(--accent);color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.06em;padding:0 12px;text-transform:uppercase;font-weight:600;grid-column:1/-1;border-radius:9px 9px 0 0}.app-shell section[data-screen=facturation] .tv-grid:focus{outline:none}.app-shell section[data-screen=facturation] .tv-grid .c.nav-active{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft);z-index:3;position:relative}.app-shell section[data-screen=facturation] .tv-grid.nav-on:before{content:"Mode édition tableur · ↑↓←→ naviguer · Entrée ou taper pour modifier · Échap pour sortir";display:flex;align-items:center;height:24px;box-sizing:border-box;background:var(--accent);color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.06em;padding:0 12px;text-transform:uppercase;font-weight:600;grid-column:1/-1;border-radius:9px 9px 0 0}.app-shell section[data-screen=facturation] .tv-grid .row.editing .c.editing{background:#fff;outline:2px solid var(--accent);outline-offset:-2px;z-index:4;position:relative}[data-theme=dark] .app-shell section[data-screen=facturation] .tv-grid .row.editing .c.editing{background:var(--paper-3)}.app-shell section[data-screen=facturation] .tv-grid .row.editing .c.editing input{width:100%;font-size:11.5px;background:transparent;border:none;outline:none;color:inherit;font-family:inherit;font-weight:inherit;letter-spacing:inherit}.app-shell .grid>.c.ref{cursor:pointer}.app-shell .grid>.c.ref:hover{color:var(--accent);text-decoration:underline}.app-shell section[data-screen=rapport-detail]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--paper);transform:translateY(100%)}.app-shell section[data-screen=rapport-detail].opening{transform:translateY(0);transition:transform .4s cubic-bezier(.16,1,.3,1)}.app-shell section[data-screen=rapport-detail].closing{transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,1,1)}.app-shell .rep{position:relative;display:grid;grid-template-rows:50px 1fr;grid-template-columns:200px 1fr 280px;height:100vh;overflow:hidden}.app-shell .rep-topbar{grid-column:1/-1;grid-row:1;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--line);background:#fff}[data-theme=dark] .app-shell .rep-topbar{background:var(--paper)}.app-shell .rep-crumbs{display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em}.app-shell .rep-crumbs b{color:var(--ink);font-weight:600}.app-shell .rep-crumbs span{opacity:.5}.app-shell .rep-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.app-shell .rep-savepill{display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ok);letter-spacing:.04em;font-weight:600;text-transform:uppercase}.app-shell .rep-savepill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}.app-shell .rep .rs{border-right:1px solid var(--line);background:var(--paper-2);overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:1px}.app-shell .rep .rs b{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin:8px 0 4px;padding:0 8px}.app-shell .rep .rs a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-size:12px;color:var(--ink-2);font-weight:450}.app-shell .rep .rs a:hover{background:var(--paper-3);color:var(--ink)}.app-shell .rep .rs a.on{background:var(--accent-soft);color:var(--accent);font-weight:500}.app-shell .rep .rs a i{width:6px;height:6px;border-radius:50%;background:var(--ink-3);flex:0 0 6px}.app-shell .rep .rs a.ok i{background:var(--ok)}.app-shell .rep .rs a.wn i{background:var(--warn)}.app-shell .rep .rs a .num{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);font-weight:600;letter-spacing:.04em}.app-shell .rep .rs .rs-sections{display:flex;flex-direction:column;gap:1px}.app-shell .rep .rs .rs-sec{position:relative;padding-left:22px;cursor:pointer}.app-shell .rep .rs .rs-sec .drag-handle{position:absolute;left:5px;top:50%;transform:translateY(-50%);color:var(--ink-3);cursor:grab;opacity:0;transition:opacity .15s;font-size:12px;line-height:1}.app-shell .rep .rs .rs-sec:hover .drag-handle{opacity:1}.app-shell .rep .rs .rs-sec.dragging{opacity:.35}.app-shell .rep .rs .rs-sec.drag-over-top{box-shadow:inset 0 2px 0 var(--accent)}.app-shell .rep .rs .rs-sec.drag-over-bottom{box-shadow:inset 0 -2px 0 var(--accent)}.app-shell .rep .rs .rs-sec .sec-name[contenteditable]{outline:none;border-bottom:1px dashed var(--line-2)}.app-shell .rep .rs .rs-add-sec{display:flex;align-items:center;gap:6px;padding:6px 8px;margin-top:5px;border:1.5px dashed var(--line-2);border-radius:4px;background:transparent;color:var(--ink-3);font-size:11.5px;font-weight:600;cursor:pointer;width:100%;text-align:left}.app-shell .rep .rs .rs-add-sec:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell .rep .rd{overflow-y:auto;background:var(--paper-3);padding:32px;display:flex;flex-direction:column;align-items:center;gap:30px}.app-shell .rep-pages{display:flex;flex-direction:column;align-items:center;gap:30px;width:100%}.app-shell .a4-page{position:relative;width:100%;max-width:780px;flex:0 0 auto;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:48px 56px 64px;box-shadow:0 4px 24px -6px #0a0a0a24;overflow-y:auto}.app-shell .a4-page[data-orientation=portrait]{aspect-ratio:210/297}.app-shell .a4-page[data-orientation=landscape]{aspect-ratio:297/210;width:96%;max-width:1180px;padding:48px 64px 64px}[data-theme=dark] .app-shell .a4-page{background:var(--paper-2)}.app-shell .page-label{position:absolute;top:-21px;left:1px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell .page-ctrl{position:absolute;top:10px;right:10px;display:flex;gap:3px;background:var(--paper);border:1px solid var(--line-2);border-radius:7px;padding:3px;box-shadow:0 6px 16px -6px #0a0a0a2e;opacity:0;transition:opacity .15s;z-index:5}.app-shell .a4-page:hover .page-ctrl,.app-shell .page-ctrl:focus-within{opacity:1}.app-shell .page-ctrl button{width:26px;height:26px;border-radius:5px;display:grid;place-items:center;color:var(--ink-2)}.app-shell .page-ctrl button.on{background:var(--accent-soft);color:var(--accent)}.app-shell .page-ctrl button:hover{background:var(--paper-2)}.app-shell .page-ctrl button.rm{color:var(--warn)}.app-shell .page-ctrl button.rm:hover{background:#fbe8de}.app-shell .page-ctrl .divider{width:1px;height:16px;background:var(--line);margin:0 2px;align-self:center}.app-shell .add-page-btn{width:100%;max-width:780px;padding:14px;border:2px dashed var(--line-2);border-radius:6px;background:transparent;color:var(--ink-3);font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto}.app-shell .add-page-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell .page-blank{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-3);font-size:12px;letter-spacing:.02em;text-align:center;padding:20px}.app-shell .rep .doc-h{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.app-shell .rep .doc-h .br{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:8px}.app-shell .rep .doc-h h1{font-size:28px;font-weight:500;letter-spacing:-.025em;line-height:1.05}.app-shell .rep .doc-h .meta{margin-top:8px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em}.app-shell .rep .doc-h .stamp{text-align:right}.app-shell .rep .doc-h .stamp b{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ok);letter-spacing:.06em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:6px;justify-content:flex-end}.app-shell .rep .doc-h .stamp b:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok)}.app-shell .rep .doc-h .stamp span{display:block;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);margin-top:3px;letter-spacing:.04em}.app-shell .rep .sec{margin-bottom:32px}.app-shell .rep .sec h2{font-size:11px;font-family:JetBrains Mono,monospace;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:14px}.app-shell .rep .sec h2:before{content:"§";font-family:Inter Tight,sans-serif;font-size:18px;color:var(--accent);font-weight:300}.app-shell .rep .sec h2 .num{margin-left:auto;color:var(--ink-3);font-weight:500}.app-shell .rep .sec h3{font-size:18px;font-weight:500;letter-spacing:-.015em;margin-bottom:10px;line-height:1.2}.app-shell .rep .field-grid,.app-shell .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:8px}.app-shell .rep .field,.app-shell .field{padding:8px 10px;background:var(--paper-2);border:1px solid var(--line);border-radius:4px;cursor:text}.app-shell .rep .field:focus-within,.app-shell .rep .field:hover,.app-shell .field:focus-within,.app-shell .field:hover{border-color:var(--accent)}.app-shell .rep .field .lab,.app-shell .field .lab{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:2px}.app-shell .rep .field .v,.app-shell .field .v{font-size:13px;font-weight:450}.app-shell .rep .field .v[contenteditable]:focus,.app-shell .field .v[contenteditable]:focus{outline:none}.app-shell .rep .editor-text,.app-shell .editor-text{font-size:14px;line-height:1.7;color:var(--ink);margin-bottom:10px;max-width:74ch}.app-shell .rep .editor-text .v,.app-shell .editor-text .v{background:#3d5afe1a;color:var(--accent);padding:1px 4px;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.04em}.app-shell .rep .photo-row,.app-shell .photo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.app-shell .rep .photo-row .ph,.app-shell .photo-row .ph{aspect-ratio:1;background-size:cover;background-position:center;border-radius:4px;position:relative;overflow:hidden;cursor:pointer}.app-shell .rep .photo-row .ph:after,.app-shell .photo-row .ph:after{content:attr(data-cap);position:absolute;left:0;right:0;bottom:0;font-family:JetBrains Mono,monospace;font-size:9px;background:linear-gradient(transparent,#000000b3);color:#fff;padding:14px 6px 4px;letter-spacing:.04em;font-weight:600}.app-shell .rep .lab-row,.app-shell .lab-row{display:grid;grid-template-columns:60px 1fr 100px 100px;gap:8px;padding:9px 0;border-bottom:1px dashed var(--line);align-items:center;font-size:12px}.app-shell .rep .lab-row.h,.app-shell .lab-row.h{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line);font-weight:600}.app-shell .rep .lab-row .ref,.app-shell .lab-row .ref{font-family:JetBrains Mono,monospace;font-weight:600;font-size:10px;background:var(--ink);color:var(--paper);padding:2px 5px;border-radius:3px;text-align:center;letter-spacing:.04em}.app-shell .rep .lab-row .val,.app-shell .lab-row .val{font-family:JetBrains Mono,monospace;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.app-shell .rep .lab-row .pill,.app-shell .lab-row .pill{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:3px;text-align:center;font-weight:600}.app-shell .rep .lab-row .pill.ok,.app-shell .lab-row .pill.ok{background:var(--ok);color:#fff}.app-shell .rep .lab-row .pill.wn,.app-shell .lab-row .pill.wn{background:var(--warn);color:#fff}.app-shell .rep .insp{border-left:1px solid var(--line);background:var(--paper-2);overflow-y:auto;padding:14px}.app-shell .rep .insp .ttl{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:10px}.app-shell .rep .insp .check{padding:9px 10px;background:var(--paper);border:1px solid var(--line);border-radius:4px;display:grid;grid-template-columns:14px 1fr;gap:8px;margin-bottom:6px;font-size:11px;cursor:pointer}.app-shell .rep .insp .check:hover{border-color:var(--accent)}.app-shell .rep .insp .check .ck{width:14px;height:14px;border-radius:3px;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:8px;font-weight:700}.app-shell .rep .insp .check.wn .ck{background:var(--warn)}.app-shell .rep .insp .check.t .ck{background:var(--paper-2);border:1.5px solid var(--ink-3);color:transparent}.app-shell .rep .insp .check b{font-weight:500;display:block;font-size:12px;margin-bottom:2px}.app-shell .rep .insp .check span{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em}.app-shell .rep .insp .ttl.spaced{margin-top:18px}.app-shell .rep .insp .ai-box{padding:12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:4px;margin-top:10px}.app-shell .rep .insp .ai-box b{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-weight:700;display:flex;align-items:center;gap:6px}.app-shell .rep .insp .ai-box b:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #3d5afe33}.app-shell .rep .insp .ai-box p{font-size:11.5px;line-height:1.5;margin-top:6px;color:var(--ink-2)}.app-shell .rep .insp .ai-box .acts{display:flex;gap:5px;margin-top:8px}.app-shell .rep .insp .ai-box .acts .b{flex:1;padding:5px 8px;border:1px solid var(--accent);border-radius:3px;font-size:10px;text-align:center;background:var(--paper);color:var(--accent);font-weight:600}.app-shell .rep .insp .ai-box .acts .b.acc{background:var(--accent);color:#fff}.app-shell .placeholder{padding:32px 28px;max-width:1080px}.app-shell .placeholder h1{font-size:28px;font-weight:500;letter-spacing:-.025em;line-height:1.05;margin-bottom:8px}.app-shell .placeholder h1 em{font-style:normal;color:var(--accent);font-weight:300}.app-shell .placeholder p{color:var(--ink-2);font-size:14px;max-width:60ch;line-height:1.5}.app-shell .placeholder .preview{margin-top:24px;border:1px dashed var(--line-2);border-radius:8px;padding:32px;background:var(--paper-2);display:flex;flex-direction:column;gap:16px;align-items:flex-start}.app-shell .inbox{display:grid;grid-template-columns:340px 1fr;height:calc(100vh - 50px)}.app-shell .inbox .ix{border-right:1px solid var(--line);overflow-y:auto;background:var(--paper-2)}.app-shell .inbox .ix-h{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.app-shell .inbox .ix-h h2{font-size:16px;font-weight:500;letter-spacing:-.015em}.app-shell .inbox .ix-h .ct{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .inbox .ix-h .ct b{color:var(--accent)}.app-shell .inbox .ix .it{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px;cursor:pointer}.app-shell .inbox .ix .it:hover{background:var(--paper-3)}.app-shell .inbox .ix .it.on{background:var(--paper);box-shadow:inset 3px 0 0 var(--accent)}.app-shell .inbox .ix .it.new{background:var(--accent-soft)}.app-shell .inbox .ix .it .top{display:flex;justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;font-weight:600}.app-shell .inbox .ix .it.new .top b{color:var(--accent)}.app-shell .inbox .ix .it .t{font-size:13px;font-weight:500;letter-spacing:-.005em;line-height:1.2}.app-shell .inbox .ix .it .meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;display:flex;gap:8px}.app-shell .inbox .ix .it .meta .pill{padding:1px 5px;border-radius:3px;font-weight:600;letter-spacing:.04em;font-size:9px;text-transform:uppercase}.app-shell .inbox .ix .it .meta .pill.warn{background:var(--warn);color:#fff}.app-shell .inbox .ix .it .meta .pill.ok{background:var(--ok);color:#fff}.app-shell .inbox .ix .it .meta .pill.go{background:var(--accent);color:#fff}.app-shell .inbox .pv{overflow-y:auto;padding:24px 28px;background:var(--paper)}.app-shell .inbox .pv .ph{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:18px}.app-shell .inbox .pv .ph h2{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.1}.app-shell .inbox .pv .ph .meta{margin-top:5px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em}.app-shell .inbox .pv .ph .acts{display:flex;gap:5px}.app-shell .builder{display:grid;grid-template-columns:230px 1fr 300px;height:calc(100vh - 50px);overflow:hidden}.app-shell .builder .pal,.app-shell .builder .insp2{overflow-y:auto;padding:14px 12px;background:var(--paper-2)}.app-shell .builder .pal{border-right:1px solid var(--line)}.app-shell .builder .insp2{border-left:1px solid var(--line)}.app-shell .builder .ttl{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:10px}.app-shell .builder .ttl.spaced{margin-top:18px}.app-shell .grip{display:grid;grid-template-columns:repeat(2,3px);grid-auto-rows:3px;gap:2px;flex:0 0 8px;margin-top:3px}.app-shell .grip i{width:3px;height:3px;border-radius:50%;background:var(--ink-3);display:block}.app-shell .blk-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px 10px;margin-bottom:7px;display:flex;gap:8px;align-items:flex-start;cursor:grab;transition:.12s}.app-shell .blk-card:hover{border-color:var(--accent);box-shadow:0 2px 8px -2px #0a0a0a14}.app-shell .blk-card .ic{width:22px;height:22px;border-radius:5px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:0 0 22px}.app-shell .blk-card .ic svg{width:12px;height:12px}.app-shell .blk-card b{font-weight:500;font-size:12px;display:block}.app-shell .blk-card span{font-size:10.5px;color:var(--ink-3);line-height:1.35;display:block;margin-top:1px}.app-shell .builder .canvas{overflow-y:auto;background:var(--paper-3);padding:26px 28px 80px}.app-shell .canvas-head{max-width:760px;margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.app-shell .canvas-head h2{font-size:15px;font-weight:500;letter-spacing:-.01em}.app-shell .canvas-head .mono{color:var(--ink-3)}.app-shell .canvas-doc{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.app-shell .canvas-drop{border:1.5px dashed var(--line-2);border-radius:6px;padding:10px;text-align:center;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .doc-block{background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden}.app-shell .doc-block.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app-shell .doc-block .blk-h{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--paper-2);cursor:pointer}.app-shell .doc-block .blk-h .grip{cursor:grab}.app-shell .doc-block .blk-h .tag{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell .doc-block.sel .blk-h .tag{color:var(--accent)}.app-shell .doc-block .blk-h .tb{margin-left:auto;display:flex;gap:2px;opacity:0;transition:.12s}.app-shell .doc-block:hover .blk-h .tb,.app-shell .doc-block.show-tb .blk-h .tb{opacity:1}.app-shell .doc-block .blk-h .tb button{width:22px;height:22px;border-radius:4px;display:grid;place-items:center;color:var(--ink-3)}.app-shell .doc-block .blk-h .tb button:hover{background:var(--paper-3);color:var(--ink)}.app-shell .doc-block .blk-h .tb button.del:hover{background:#fbe8de;color:var(--warn)}.app-shell .doc-block .blk-b{padding:16px 18px}.app-shell .insp2 .field{padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:4px;margin-bottom:8px}.app-shell .insp2 .field .lab{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:2px}.app-shell .insp2 .field .v{font-size:12px;font-weight:450;display:flex;align-items:center;justify-content:space-between;gap:6px}.app-shell .insp2 .field .v svg{color:var(--ink-3);flex:0 0 auto}.app-shell .insp2 .chk{padding:7px 9px;background:var(--paper);border:1px solid var(--line);border-radius:4px;display:grid;grid-template-columns:14px 1fr;gap:8px;margin-bottom:5px;font-size:11.5px;align-items:center;cursor:pointer}.app-shell .insp2 .chk .ck{width:14px;height:14px;border-radius:3px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:8px;font-weight:700}.app-shell .insp2 .chk.off .ck{background:var(--paper-2);border:1.5px solid var(--ink-3);color:transparent}.app-shell .tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:22px}.app-shell .tpl-card{border:1px solid var(--line);border-radius:8px;background:var(--paper-2);overflow:hidden;display:flex;flex-direction:column}.app-shell .tpl-card .prev{padding:14px 14px 12px;background:var(--paper);display:flex;flex-direction:column;gap:4px}.app-shell .tpl-card .prev .chip{display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-2);letter-spacing:.03em;padding:3px 0}.app-shell .tpl-card .prev .chip .grip{margin-top:0}.app-shell .tpl-card .head{padding:12px 14px 0}.app-shell .tpl-card .head b{font-size:14px;font-weight:500;display:block;letter-spacing:-.005em}.app-shell .tpl-card .meta{padding:10px 14px;border-top:1px solid var(--line);font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;display:flex;justify-content:space-between}.app-shell .tpl-card .acts{display:flex;border-top:1px solid var(--line)}.app-shell .tpl-card .acts button{flex:1;padding:8px 0;font-size:11px;font-weight:500;color:var(--ink-2);border-right:1px solid var(--line)}.app-shell .tpl-card .acts button:last-child{border-right:none}.app-shell .tpl-card .acts button:hover{background:var(--paper-3);color:var(--ink)}.app-shell .tpl-card.new{border-style:dashed;border-color:var(--line-2);align-items:center;justify-content:center;display:flex;flex-direction:column;gap:8px;min-height:216px;color:var(--ink-3);cursor:pointer;background:transparent}.app-shell .tpl-card.new:hover{border-color:var(--accent);color:var(--accent)}.app-shell .tpl-card.new .plus{width:34px;height:34px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:18px;font-weight:300}.app-shell .lab-drop{margin:12px 14px;border:1.5px dashed var(--line-2);border-radius:6px;padding:14px 12px;text-align:center;background:var(--paper)}.app-shell .lab-drop svg{color:var(--ink-3);margin-bottom:4px}.app-shell .lab-drop p{font-size:11.5px;color:var(--ink-2);line-height:1.4}.app-shell .lab-drop .btn{margin-top:8px}.app-shell .lab-drop .status{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.03em}.app-shell .match-panel{margin-top:22px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.app-shell .match-panel .mh{padding:10px 14px;background:var(--paper-2);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.app-shell .match-panel .mh b{font-size:12.5px;font-weight:500}.app-shell .match-panel .mh .ct{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent);font-weight:700;letter-spacing:.04em}.app-shell .match-row{padding:11px 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.app-shell .match-row:last-child{border-bottom:none}.app-shell .match-row .pair{display:flex;align-items:center;gap:10px;font-size:12px}.app-shell .match-row .pair .from{font-family:JetBrains Mono,monospace;font-weight:600;background:var(--ink);color:var(--paper);padding:2px 6px;border-radius:3px;font-size:10px}.app-shell .match-row .pair .arrow{color:var(--ink-3)}.app-shell .match-row .conf{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:3px}.app-shell .match-row .conf.strong{background:#dcf3e8;color:var(--ok)}.app-shell .match-row .conf.check{background:#fff5d6;color:#a07300}.app-shell .match-row .acts2{display:flex;gap:4px}.app-shell .match-row .acts2 button{padding:4px 9px;border:1px solid var(--line-2);border-radius:4px;font-size:10.5px;font-weight:500}.app-shell .match-row .acts2 button.acc{border-color:var(--ok);color:var(--ok)}.app-shell .match-row .acts2 button.acc:hover{background:var(--ok);color:#fff}.app-shell .match-row .acts2 button.rej:hover{background:#fbe8de;color:var(--warn);border-color:var(--warn)}.app-shell section[data-screen=annotations]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--paper);transform:translateY(100%)}.app-shell section[data-screen=annotations].opening{transform:translateY(0);transition:transform .4s cubic-bezier(.16,1,.3,1)}.app-shell section[data-screen=annotations].closing{transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,1,1)}.app-shell .annot{display:grid;grid-template-columns:150px 1fr 300px;height:100vh;overflow:hidden}.app-shell .annot .film{border-right:1px solid var(--line);background:var(--paper-2);overflow-y:auto;padding:10px}.app-shell .annot .film .th{border-radius:5px;margin-bottom:8px;cursor:pointer;position:relative;border:2px solid transparent;overflow:hidden}.app-shell .annot .film .th[data-orientation=portrait]{aspect-ratio:3/4;width:87%;margin-left:auto;margin-right:auto}.app-shell .annot .film .th[data-orientation=landscape]{aspect-ratio:4/3}.app-shell .annot .film .th.on{border-color:var(--accent)}.app-shell .annot .film .th .ct{position:absolute;left:4px;bottom:4px;font-family:JetBrains Mono,monospace;font-size:8px;background:#000000a6;color:#fff;padding:1px 4px;border-radius:2px;font-weight:600;z-index:2}.app-shell .annot .film .th-frames{position:absolute;top:0;right:0;bottom:0;left:0}.app-shell .annot .film .th-frame{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:0;transition:opacity .2s}.app-shell .annot .film .th-frame.on{opacity:1}.app-shell .annot .film .th-nav{position:absolute;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;background:#0000008c;color:#fff;display:none;place-items:center;font-size:11px;line-height:1;z-index:3;cursor:pointer;border:none}.app-shell .annot .film .th:hover .th-nav{display:grid}.app-shell .annot .film .th-nav:hover{background:#000000bf}.app-shell .annot .film .th-nav.prev{left:4px}.app-shell .annot .film .th-nav.next{right:4px}.app-shell .annot .film .th-dots{position:absolute;top:5px;left:0;right:0;display:flex;justify-content:center;gap:3px;z-index:2}.app-shell .annot .film .th-dots i{width:4px;height:4px;border-radius:50%;background:#ffffff73;font-style:normal;display:block}.app-shell .annot .film .th-dots i.on{background:#fff}.app-shell .annot .stage{position:relative;background:var(--paper-3);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:24px}.app-shell .annot .stage .photo{position:relative;border-radius:8px;overflow:hidden;box-shadow:0 24px 48px -12px #0a0a0a4d}.app-shell .annot .stage .photo[data-orientation=landscape]{width:min(100%,680px);max-height:100%;aspect-ratio:4/3}.app-shell .annot .stage .photo[data-orientation=portrait]{width:min(70%,480px);max-height:100%;aspect-ratio:3/4}.app-shell .annot .stage .cap{position:absolute;left:14px;bottom:12px;font-family:JetBrains Mono,monospace;font-size:10px;color:#fff;letter-spacing:.04em;background:#00000073;padding:3px 8px;border-radius:3px}.app-shell .photo-orient-ctrl{position:absolute;top:10px;right:10px;display:flex;gap:3px;background:var(--paper);border:1px solid var(--line-2);border-radius:7px;padding:3px;box-shadow:0 6px 16px -6px #0a0a0a2e;opacity:0;transition:opacity .15s;z-index:4}.app-shell .annot .stage .photo:hover .photo-orient-ctrl,.app-shell .photo-orient-ctrl:focus-within{opacity:1}.app-shell .photo-orient-ctrl button{width:26px;height:26px;border-radius:5px;display:grid;place-items:center;color:var(--ink-2)}.app-shell .photo-orient-ctrl button.on{background:var(--accent-soft);color:var(--accent)}.app-shell .photo-orient-ctrl button:hover{background:var(--paper-2)}.app-shell .annot .toolbar-float{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:3px;background:var(--paper);border:1px solid var(--line-2);border-radius:8px;padding:4px;box-shadow:0 10px 24px -6px #0a0a0a33;z-index:3}.app-shell .annot .toolbar-float button{width:30px;height:30px;border-radius:5px;display:grid;place-items:center;color:var(--ink-2)}.app-shell .annot .toolbar-float button.on{background:var(--accent-soft);color:var(--accent)}.app-shell .annot .toolbar-float button:hover{background:var(--paper-2)}.app-shell .annot .toolbar-float button.save-btn{color:var(--ok)}.app-shell .annot .toolbar-float button.save-btn:hover{background:#0a875724;color:var(--ok)}.app-shell .annot .toolbar-float .div{width:1px;height:16px;background:var(--line);margin:0 2px;align-self:center}.app-shell .annot .toolbar-float .annot-color-pick{position:relative;display:flex;align-items:center}.app-shell .annot .toolbar-float .annot-color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line-2);cursor:pointer;margin:0 5px}.app-shell .annot .toolbar-float .annot-color-pop{position:absolute;top:38px;left:50%;transform:translate(-50%);display:none;gap:6px;background:var(--paper);border:1px solid var(--line-2);border-radius:8px;padding:7px;box-shadow:0 10px 24px -6px #0a0a0a33;z-index:4}.app-shell .annot .toolbar-float .annot-color-pop.on{display:flex}.app-shell .annot .toolbar-float .annot-color-pop button{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;padding:0}.app-shell .annot .toolbar-float .annot-color-pop button.active{border-color:var(--ink)}.app-shell .pin{position:absolute;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;transform:translate(-50%,-50%);cursor:pointer;box-shadow:0 0 0 4px #ffffff47,0 2px 6px #0000004d;z-index:2}.app-shell .pin.amiante{background:var(--warn)}.app-shell .pin.plomb{background:#a07300}.app-shell .pin.elec{background:var(--accent)}.app-shell .pin.orphan{background:#8a8f96}.app-shell .pin.orphan:after{content:"!";position:absolute;top:-5px;right:-5px;width:12px;height:12px;border-radius:50%;background:var(--warn);color:#fff;font-size:9px;display:grid;place-items:center;font-weight:800;box-shadow:0 0 0 2px #fff}.app-shell .pin.sel{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--accent),0 2px 6px #0000004d}.app-shell .shape{position:absolute;transform:translate(-50%,-50%)}.app-shell .shape .rm{position:absolute;top:-8px;right:-8px;width:16px;height:16px;border-radius:50%;background:var(--ink);color:#fff;display:none;place-items:center;font-size:10px;line-height:1;cursor:pointer;z-index:1}.app-shell .shape:hover .rm{display:grid}.app-shell .shape.circle{width:64px;height:64px;border-radius:50%;border:2.5px solid;background:#ffffff1f}.app-shell .shape.square{width:64px;height:64px;border-radius:6px;border:2.5px solid;background:#ffffff1f}.app-shell .shape.triangle{width:0;height:0;border-left:32px solid transparent;border-right:32px solid transparent;border-bottom:56px solid;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.app-shell .shape.triangle .rm{top:-8px;right:-24px}.app-shell .annot .stage .photo{cursor:crosshair}.app-shell .annot .stage .photo.tool-move{cursor:default}.app-shell .annot .stage .photo.tool-move .pin,.app-shell .annot .stage .photo.tool-move .shape,.app-shell .annot .stage .photo.tool-move .annot-text-wrap,.app-shell .annot .stage .photo.tool-move .annot-vector-layer g,.app-shell .annot .stage .photo.tool-move .annot-vector-layer polygon{cursor:grab}.app-shell .annot .stage .photo.tool-move .pin:active,.app-shell .annot .stage .photo.tool-move .shape:active,.app-shell .annot .stage .photo.tool-move .annot-text-wrap:active{cursor:grabbing}.app-shell .annot-vector-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}.app-shell .vec-rm{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--ink);color:#fff;border:none;display:grid;place-items:center;font-size:10px;line-height:1;cursor:pointer;z-index:2;transform:translate(-50%,-50%);pointer-events:auto;opacity:.45;transition:opacity .15s}.app-shell .vec-rm:hover{opacity:1}.app-shell .annot-text-wrap{position:absolute;transform:translate(-50%,-50%);z-index:2}.app-shell .annot-text{min-width:26px;min-height:20px;padding:3px 8px;border-radius:4px;background:#141416b8;color:#fff;font-size:12px;line-height:1.35;font-weight:500;cursor:text;outline:none;box-shadow:0 2px 6px #0000004d;max-width:220px}.app-shell .annot-text:empty:before{content:"Texte…";opacity:.6}.app-shell .annot-text-wrap .rm{position:absolute;top:-8px;right:-8px;width:16px;height:16px;border-radius:50%;background:var(--ink);color:#fff;display:none;place-items:center;font-size:10px;line-height:1;cursor:pointer;z-index:1}.app-shell .annot-text-wrap:hover .rm{display:grid}.app-shell .zone-vertex{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid;transform:translate(-50%,-50%);z-index:2;pointer-events:none}.app-shell .zone-vertex.first{width:11px;height:11px}.app-shell .annot .list{border-left:1px solid var(--line);background:var(--paper-2);overflow-y:auto;padding:14px}.app-shell .annot-item{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 11px;margin-bottom:8px;display:flex;gap:9px}.app-shell .annot-item.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app-shell .annot-item.orphan{border-color:#c4502a66;background:#fbe8de}.app-shell .annot-item .badge-num{width:20px;height:20px;border-radius:50%;color:#fff;display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;flex:0 0 20px}.app-shell .annot-item b{font-size:12px;font-weight:500;display:block}.app-shell .annot-item b[contenteditable]{outline:none;border-bottom:1px dashed var(--line-2);cursor:text}.app-shell .annot-item .tag{display:inline-block;margin-top:3px;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;padding:1px 6px;border-radius:3px}.app-shell .annot-item .lnk{display:block;margin-top:5px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent);font-weight:600;cursor:pointer}.app-shell .annot-item .warnline{display:flex;align-items:center;gap:5px;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--warn);font-weight:700;letter-spacing:.03em;text-transform:uppercase}.app-shell .annot-item .relink{margin-top:6px;font-family:JetBrains Mono,monospace;font-size:9.5px;color:#fff;background:var(--warn);border-radius:4px;padding:4px 9px;display:inline-block;font-weight:700;cursor:pointer}.app-shell section[data-screen=annotations] .annot-toast-host{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:99}.app-shell section[data-screen=annotations] .annot-toast{background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:11px 18px;border-radius:999px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.app-shell section[data-screen=annotations] .annot-toast.on{opacity:1;transform:translateY(0)}.app-shell .vtl-wrap{padding:28px 28px 60px;max-width:900px}.app-shell .vtl{margin-top:22px;display:flex;flex-direction:column}.app-shell .vtl-node{display:grid;grid-template-columns:22px 1fr;gap:16px;position:relative;padding-bottom:22px}.app-shell .vtl-node:before{content:"";position:absolute;left:10px;top:24px;bottom:0;width:1px;background:var(--line-2)}.app-shell .vtl-node:last-child:before{display:none}.app-shell .vtl-dot{width:21px;height:21px;border-radius:50%;background:var(--paper-2);border:2px solid var(--line-2);display:grid;place-items:center;z-index:1;color:var(--ink-3)}.app-shell .vtl-node.auto .vtl-dot{border-color:var(--ink-3)}.app-shell .vtl-node.cur .vtl-dot{border-color:var(--accent);background:var(--accent);color:#fff}.app-shell .vtl-card{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:12px 14px}.app-shell .vtl-card .top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.app-shell .vtl-card .top b{font-size:13px;font-weight:500}.app-shell .vtl-card .top .when{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .vtl-card .who{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600;margin-bottom:6px}.app-shell .vtl-card .who.auto{color:var(--ink-3)}.app-shell .vtl-card p{font-size:12px;color:var(--ink-2);line-height:1.5}.app-shell .vtl-card .acts3{display:flex;gap:5px;margin-top:10px}.app-shell .vtl-card .acts3 button{padding:4px 10px;border:1px solid var(--line-2);border-radius:4px;font-size:11px;font-weight:500}.app-shell .vtl-card .acts3 button:hover{border-color:var(--ink);background:var(--ink);color:#fff}.app-shell .diff-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.app-shell .diff-col{border-radius:5px;padding:9px 11px;font-size:11.5px;line-height:1.55}.app-shell .diff-col .lab{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-bottom:5px;display:block}.app-shell .diff-col.before{background:#fbe8de}.app-shell .diff-col.before .lab{color:var(--warn)}[data-theme=dark] .app-shell .diff-col.before{background:#3a1a0d}.app-shell .diff-col.after{background:#dcf3e8}.app-shell .diff-col.after .lab{color:var(--ok)}[data-theme=dark] .app-shell .diff-col.after{background:#0d2a1d}.app-shell .diff-col .ln{display:block;font-family:JetBrains Mono,monospace;font-size:10.5px;margin-bottom:3px}.app-shell .diff-col.before .ln:before{content:"− ";color:var(--warn);font-weight:700}.app-shell .diff-col.after .ln:before{content:"+ ";color:var(--ok);font-weight:700}.app-shell .sig-wrap{padding:28px 28px 60px;max-width:900px}.app-shell .stepper{display:flex;align-items:flex-start;margin-top:22px}.app-shell .step{flex:1;text-align:center;position:relative}.app-shell .step .ln{position:absolute;top:15px;left:calc(-50% + 15px);width:calc(100% - 30px);height:2px;background:var(--line-2);z-index:0}.app-shell .step:first-child .ln{display:none}.app-shell .step.done .ln{background:var(--ok)}.app-shell .step .dot{width:30px;height:30px;border-radius:50%;background:var(--paper-2);border:2px solid var(--line-2);display:grid;place-items:center;margin:0 auto 8px;position:relative;z-index:1;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.app-shell .step.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}.app-shell .step.cur .dot{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}.app-shell .step.err .dot{background:var(--warn);border-color:var(--warn);color:#fff}.app-shell .step b{font-size:11.5px;font-weight:500;display:block}.app-shell .step span{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.03em;display:block;margin-top:2px}.app-shell .sig-card{margin-top:26px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.app-shell .sig-card .who{display:flex;gap:12px;align-items:center}.app-shell .sig-card .av2{width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-weight:700;font-size:14px}.app-shell .sig-card b{font-size:15px;font-weight:500;display:block}.app-shell .sig-card .role{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);letter-spacing:.03em;margin-top:2px}.app-shell .sig-card .meta2{text-align:right;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);letter-spacing:.03em}.app-shell .quote{margin-top:14px;padding:12px 16px;background:var(--paper-2);border-left:3px solid var(--warn);border-radius:0 6px 6px 0;font-size:12.5px;color:var(--ink-2);line-height:1.55;font-style:italic}.app-shell .quote b{display:block;font-style:normal;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--warn);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-weight:700}.app-shell .sig-log{margin-top:24px}.app-shell .sig-log .row2{display:grid;grid-template-columns:16px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:flex-start;font-size:12px}.app-shell .sig-log .row2:last-child{border-bottom:none}.app-shell .sig-log .row2 .dot2{width:8px;height:8px;border-radius:50%;background:var(--ink-3);margin-top:4px}.app-shell .sig-log .row2.ok .dot2{background:var(--ok)}.app-shell .sig-log .row2.warn .dot2{background:var(--warn)}.app-shell .sig-log .row2.go .dot2{background:var(--accent)}.app-shell .sig-log .row2 b{font-weight:500;display:block}.app-shell .sig-log .row2 span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell .sig-log .row2 .when2{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);white-space:nowrap}.app-shell .cmdk-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;display:none}[data-theme=dark] .app-shell .cmdk-veil{background:#0009}.app-shell .cmdk-veil.on{display:block}.app-shell .cmdk{position:fixed;top:18%;left:50%;transform:translate(-50%);width:560px;max-width:92vw;background:var(--paper);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 30px 60px -10px #0a0a0a4d;z-index:100;display:none;overflow:hidden}.app-shell .cmdk.on{display:block}.app-shell .cmdk .top{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.app-shell .cmdk .top input{flex:1;font-size:14px}.app-shell .cmdk .body{max-height:320px;overflow-y:auto;padding:6px 0}.app-shell .cmdk .b{display:block;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:8px 16px 4px}.app-shell .cmdk .it{padding:7px 16px;display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}.app-shell .cmdk .it:hover,.app-shell .cmdk .it.on{background:var(--accent-soft);color:var(--accent)}.app-shell .cmdk .it .kbd{margin-left:auto}.app-shell .tweaks{position:fixed;right:18px;bottom:18px;width:260px;background:var(--paper);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 12px 32px -8px #0a0a0a2e;z-index:80;display:none}.app-shell .tweaks.on{display:block}.app-shell .tweaks .h{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.app-shell .tweaks .h h4{font-family:JetBrains Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.app-shell .tweaks .h .x{cursor:pointer;color:var(--ink-3)}.app-shell .tweaks .b{padding:12px 14px;display:flex;flex-direction:column;gap:14px}.app-shell .tweaks .row{display:flex;flex-direction:column;gap:6px}.app-shell .tweaks .row>b{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.app-shell .tweaks .swatches{display:flex;gap:6px}.app-shell .tweaks .sw{width:24px;height:24px;border-radius:5px;cursor:pointer;border:2px solid transparent;flex:0 0 24px}.app-shell .tweaks .sw.on{border-color:var(--ink)}.app-shell .tweaks .seg{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--paper-2);border:1px solid var(--line);border-radius:5px;padding:2px}.app-shell .tweaks .seg button{padding:5px 8px;border-radius:3px;font-size:11px;font-family:JetBrains Mono,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.app-shell .tweaks .seg button.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0000000d}.app-shell section[data-screen=facturation]{--paper-4:#dcdfd8;--ok-soft:#dcf3e8;--ok-2:#065a3c;--warn-soft:#fbe8de;--warn-2:#8f3818;--danger:#c02929;--danger-soft:#fadada;--gold:#a07300;--gold-soft:#fff5d6;--qr:#0f2c5c;--qr-soft:#e2ecff;--ebill:#6b2fcf;--ebill-soft:#f0e7ff;--row-h:32px;font-size:12.5px;font-feature-settings:"tnum"}.app-shell section[data-screen=facturation].on{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-shell section[data-screen=facturation] a{color:inherit;text-decoration:none}.app-shell section[data-screen=facturation] button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.app-shell section[data-screen=facturation] input,.app-shell section[data-screen=facturation] select{font:inherit;color:inherit;background:none;border:none;outline:none}.app-shell section[data-screen=facturation] .wbtn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line-2);border-radius:5px;font-size:11px;font-weight:500;background:transparent;color:var(--ink);cursor:pointer}.app-shell section[data-screen=facturation] .wbtn:hover{background:var(--paper-3)}.app-shell section[data-screen=facturation] .wbtn.acc{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell section[data-screen=facturation] .wbtn.acc:hover{background:var(--accent-2)}.app-shell section[data-screen=facturation] .wbtn.ghost{border-color:transparent;color:var(--ink-2)}.app-shell section[data-screen=facturation] .cockpit{padding:16px 22px 14px;border-bottom:1px solid var(--line);background:#fff;flex:0 0 auto}.app-shell section[data-screen=facturation] .cockpit-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.app-shell section[data-screen=facturation] .cockpit-top h2{font-size:17px;font-weight:600;letter-spacing:-.015em}.app-shell section[data-screen=facturation] .cockpit-top .sub{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em}.app-shell section[data-screen=facturation] .cockpit-top .picker{margin-left:auto;display:flex;gap:2px;padding:2px;background:var(--paper-2);border-radius:5px;border:1px solid var(--line)}.app-shell section[data-screen=facturation] .cockpit-top .picker span{padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--ink-3);border-radius:3px;cursor:pointer;text-transform:uppercase}.app-shell section[data-screen=facturation] .cockpit-top .picker span.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0a0a0a14}.app-shell section[data-screen=facturation] .fkpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.app-shell section[data-screen=facturation] .fkpi{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:11px 14px;position:relative;overflow:hidden}.app-shell section[data-screen=facturation] .fkpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.app-shell section[data-screen=facturation] .fkpi.warn:before{background:var(--warn)}.app-shell section[data-screen=facturation] .fkpi.danger:before{background:var(--danger)}.app-shell section[data-screen=facturation] .fkpi.ok:before{background:var(--ok)}.app-shell section[data-screen=facturation] .fkpi .l{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:5px}.app-shell section[data-screen=facturation] .fkpi .v{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1}.app-shell section[data-screen=facturation] .fkpi .u{font-size:11px;color:var(--ink-3);font-weight:500;margin-left:3px}.app-shell section[data-screen=facturation] .fkpi .delta{margin-top:5px;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ok);letter-spacing:.03em;font-weight:600;display:flex;align-items:center;gap:4px}.app-shell section[data-screen=facturation] .fkpi .delta.dn{color:var(--danger)}.app-shell section[data-screen=facturation] .fchan{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.app-shell section[data-screen=facturation] .fchan.qr{background:var(--qr-soft);color:var(--qr)}.app-shell section[data-screen=facturation] .fchan.ebill{background:var(--ebill-soft);color:var(--ebill)}.app-shell section[data-screen=facturation] .fchan.pdf{background:var(--paper-2);color:var(--ink-3);border:1px solid var(--line)}.app-shell section[data-screen=facturation] .fchan:before{content:"●";font-size:8px}.app-shell section[data-screen=facturation] .fchan.qr:before{color:var(--qr)}.app-shell section[data-screen=facturation] .fchan.ebill:before{color:var(--ebill)}.app-shell section[data-screen=facturation] .fchan.pdf:before{color:var(--ink-3)}.app-shell section[data-screen=facturation] .fstat{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.app-shell section[data-screen=facturation] .fstat.draft{background:var(--paper-3);color:var(--ink-2)}.app-shell section[data-screen=facturation] .fstat.sent{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .fstat.accepted{background:var(--ok-soft);color:var(--ok)}.app-shell section[data-screen=facturation] .fstat.emitted{background:#e6ebff;color:#2647d1}.app-shell section[data-screen=facturation] .fstat.paid{background:var(--ok-soft);color:var(--ok-2)}.app-shell section[data-screen=facturation] .fstat.overdue{background:var(--danger-soft);color:var(--danger)}.app-shell section[data-screen=facturation] .fviews{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.app-shell section[data-screen=facturation] .fview{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0}.app-shell section[data-screen=facturation] .fview.on{display:flex}.app-shell section[data-screen=facturation] .tv-tabs{display:flex;align-items:center;gap:2px;padding:0 22px;border-bottom:1px solid var(--line);background:#fff;height:36px;flex:0 0 36px}.app-shell section[data-screen=facturation] .tv-tab{padding:8px 12px;font-size:11.5px;font-weight:500;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:6px}.app-shell section[data-screen=facturation] .tv-tab .n{font-family:JetBrains Mono,monospace;font-size:9px;padding:1px 6px;background:var(--paper-2);border-radius:99px;color:var(--ink-3);font-weight:600}.app-shell section[data-screen=facturation] .tv-tab.on{color:var(--ink);border-bottom-color:var(--accent)}.app-shell section[data-screen=facturation] .tv-tab.on .n{background:var(--accent);color:#fff}.app-shell section[data-screen=facturation] .tv-toolbar{display:flex;align-items:center;gap:7px;padding:8px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap;background:#fff}.app-shell section[data-screen=facturation] .tv-search{flex:0 0 240px;display:flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:5px;background:var(--paper-2);color:var(--ink-3)}.app-shell section[data-screen=facturation] .tv-search input{flex:1;font-size:11px}.app-shell section[data-screen=facturation] .tv-filt{display:flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--line);border-radius:5px;font-size:11px;color:var(--ink-2);background:var(--paper-2);cursor:pointer}.app-shell section[data-screen=facturation] .tv-filt b{color:var(--ink);font-weight:500}.app-shell section[data-screen=facturation] .tv-filt.acc{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell section[data-screen=facturation] .tv-filt.acc b{color:var(--accent)}.app-shell section[data-screen=facturation] .tv-filt.gold{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}.app-shell section[data-screen=facturation] .tv-info{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell section[data-screen=facturation] .tv-info b{color:var(--ink)}.app-shell section[data-screen=facturation] .tv-icontools{display:flex;align-items:center;gap:2px;background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:3px}.app-shell section[data-screen=facturation] .tv-icontools .it{width:26px;height:24px;display:grid;place-items:center;border-radius:5px;border:none;background:none;color:var(--ink-3);cursor:pointer;flex:0 0 auto}.app-shell section[data-screen=facturation] .tv-icontools .it:hover{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .tv-icontools .it.on{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .tv-icontools .it svg{display:block}.app-shell section[data-screen=facturation] .tv-newbtn{display:flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:11.5px;font-weight:600;cursor:pointer;flex:0 0 auto}.app-shell section[data-screen=facturation] .tv-newbtn:hover{background:#2f47e0}.app-shell section[data-screen=facturation] .tv-search-inline{display:flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:6px;background:var(--paper-2);color:var(--ink-3);flex:0 0 240px}.app-shell section[data-screen=facturation] .tv-search-inline input{border:none;background:none;font-size:11.5px;outline:none;width:100%;color:var(--ink)}.app-shell section[data-screen=facturation] .tv-selbar{display:none;align-items:center;gap:10px;padding:7px 22px;border-bottom:1px solid var(--accent);background:var(--accent-soft);font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--accent);letter-spacing:.05em;font-weight:600;text-transform:uppercase}.app-shell section[data-screen=facturation] .tv-selbar.on{display:flex}.app-shell section[data-screen=facturation] .tv-selbar .ct{background:var(--accent);color:#fff;padding:2px 7px;border-radius:3px}.app-shell section[data-screen=facturation] .tv-selbar .acts{margin-left:auto;display:flex;gap:4px}.app-shell section[data-screen=facturation] .tv-selbar .acts .b{padding:4px 9px;border:1px solid var(--accent);border-radius:4px;background:#fff;color:var(--accent);font-size:10px;font-weight:500;letter-spacing:.04em;cursor:pointer}.app-shell section[data-screen=facturation] .tv-selbar .acts .b.fill{background:var(--accent);color:#fff}.app-shell section[data-screen=facturation] .tv-gridwrap{flex:1;overflow:auto;min-height:0}.app-shell section[data-screen=facturation] .tv-grid{display:grid;font-size:11.5px;grid-template-columns:60px 130px minmax(220px,1.5fr) minmax(180px,1.1fr) 100px 110px 110px 100px 110px 104px;position:relative}.app-shell section[data-screen=facturation] .tv-grid.selecting{grid-template-columns:32px 60px 130px minmax(220px,1.5fr) minmax(180px,1.1fr) 100px 110px 110px 100px 110px 104px}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child,.app-shell section[data-screen=facturation] .tv-grid .row>.c:first-child{display:none}.app-shell section[data-screen=facturation] .tv-grid.selecting>.h:first-child,.app-shell section[data-screen=facturation] .tv-grid.selecting .row>.c:first-child{display:flex}.app-shell section[data-screen=facturation] .tv-grid .h{position:sticky;top:0;background:var(--paper-2);border-bottom:1px solid var(--line-2);z-index:2;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600;padding:7px 9px;display:flex;align-items:center;gap:5px;border-right:1px solid var(--line)}.app-shell section[data-screen=facturation] .tv-grid .row{display:contents}.app-shell section[data-screen=facturation] .tv-grid .c{padding:0 9px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:center;height:var(--row-h);background:var(--paper);cursor:pointer}.app-shell section[data-screen=facturation] .tv-grid .row:hover .c{background:var(--paper-3)}.app-shell section[data-screen=facturation] .tv-grid .row.sel .c{background:var(--accent-soft)}.app-shell section[data-screen=facturation] .tv-grid .c.editing{background:#fff;outline:1.5px solid var(--accent);outline-offset:-1.5px;position:relative;z-index:3}.app-shell section[data-screen=facturation] .tv-grid .c.editing input{width:100%;height:100%;font:inherit}.app-shell section[data-screen=facturation] .tv-ck{width:13px;height:13px;border:1.4px solid var(--ink-3);border-radius:3px;position:relative;flex:0 0 13px;cursor:pointer}.app-shell section[data-screen=facturation] .tv-ck.on{background:var(--accent);border-color:var(--accent)}.app-shell section[data-screen=facturation] .tv-ck.on:after{content:"";position:absolute;left:3px;top:.5px;width:3.5px;height:6.5px;border:solid #fff;border-width:0 1.4px 1.4px 0;transform:rotate(45deg)}.app-shell section[data-screen=facturation] .tv-grid .c.num{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-2);font-weight:600}.app-shell section[data-screen=facturation] .tv-grid .c.client{font-weight:500}.app-shell section[data-screen=facturation] .tv-grid .c.amt{font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;justify-content:flex-end}.app-shell section[data-screen=facturation] .tv-grid .c.date{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-2)}.app-shell section[data-screen=facturation] .tv-grid .c.echeance.late{color:var(--danger);font-weight:700}.app-shell section[data-screen=facturation] .tv-grid .grp{grid-column:1/-1;background:var(--paper-2);border-bottom:1px solid var(--line-2);padding:6px 12px;display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--ink-2)}.app-shell section[data-screen=facturation] .tv-grid .grp .n{color:var(--ink-3);font-weight:500}.app-shell section[data-screen=facturation] .tv-grid .grp .menu{margin-left:auto;color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}.app-shell section[data-screen=facturation] .tv-grid .c.acts{gap:6px;justify-content:center;padding:0 8px}.app-shell section[data-screen=facturation] .tv-grid .c.acts .racbtn{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);color:var(--ink-3);font-size:11px;cursor:pointer;font-family:inherit;line-height:1}.app-shell section[data-screen=facturation] .tv-grid .c.acts .racbtn svg{display:block}.app-shell section[data-screen=facturation] .tv-grid .c.acts .racbtn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.app-shell section[data-screen=facturation] .tv-grid .c.acts .racbtn.del:hover{background:#fbe3e3;color:#c0392b;border-color:#c0392b}.app-shell section[data-screen=facturation] .tv-grid .c.acts .racbtn.del.confirm{width:auto;padding:0 8px;border-radius:11px;background:#c0392b;color:#fff;border-color:#c0392b;font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.app-shell section[data-screen=facturation] .tv-grid .h.h-acts{position:sticky;right:0;z-index:6;justify-content:center;box-shadow:0 -1px 0 var(--line-2),-6px 0 6px -6px #0a0a0a26}.app-shell section[data-screen=facturation] .tv-grid .c.acts{position:sticky;right:0;z-index:4;box-shadow:-6px 0 6px -6px #0a0a0a26}.app-shell section[data-screen=facturation] .type-pill{font-family:JetBrains Mono,monospace;font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:3px;font-weight:700}.app-shell section[data-screen=facturation] .type-pill.dev{background:var(--gold-soft);color:var(--gold)}.app-shell section[data-screen=facturation] .type-pill.fac{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .kv-filters{display:flex;align-items:center;gap:7px;padding:8px 22px;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;flex:0 0 auto}.app-shell section[data-screen=facturation] .kv-filt{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:5px;font-size:11px;color:var(--ink-2);background:var(--paper-2);cursor:pointer}.app-shell section[data-screen=facturation] .kv-filt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .kv-filt b{color:var(--ink);font-weight:500}.app-shell section[data-screen=facturation] .kv-filt.on b{color:var(--accent)}.app-shell section[data-screen=facturation] .kv-total{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell section[data-screen=facturation] .kv-total b{color:var(--ink);font-size:12px}.app-shell section[data-screen=facturation] .kv-board{flex:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--paper);overflow:hidden;min-height:0;padding:0 22px 20px;box-sizing:border-box}.app-shell section[data-screen=facturation] .kv-col{box-shadow:0 0 0 1px var(--line)}.app-shell section[data-screen=facturation] .kv-col{background:var(--paper);display:flex;flex-direction:column;min-height:0}.app-shell section[data-screen=facturation] .kv-col-h{padding:10px 12px 8px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:6px;background:var(--paper-2)}.app-shell section[data-screen=facturation] .kv-col-h .t{display:flex;flex-direction:column;gap:2px;min-width:0}.app-shell section[data-screen=facturation] .kv-col-h .dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;margin-top:3px}.app-shell section[data-screen=facturation] .kv-col-h b{font-size:11.5px;font-weight:600;letter-spacing:-.005em}.app-shell section[data-screen=facturation] .kv-col-h .count{margin-left:auto;margin-top:1px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);font-weight:600;background:#fff;border:1px solid var(--line);padding:1px 6px;border-radius:99px}.app-shell section[data-screen=facturation] .kv-col-h .sum{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em}.app-shell section[data-screen=facturation] .kv-col-h .sum b{color:var(--ink-2);font-weight:600}.app-shell section[data-screen=facturation] .kv-col-body{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:0}.app-shell section[data-screen=facturation] .kv-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:9px 10px;cursor:grab;transition:.15s;position:relative}.app-shell section[data-screen=facturation] .kv-card:hover{border-color:var(--ink-3);box-shadow:0 4px 10px -4px #0a0a0a1a}.app-shell section[data-screen=facturation] .kv-card.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.app-shell section[data-screen=facturation] .kv-card.card-flash{animation:mdImportFlash 1.1s ease}.app-shell section[data-screen=facturation] .kv-card .cd-top{display:flex;align-items:center;gap:5px;margin-bottom:6px}.app-shell section[data-screen=facturation] .kv-card .cd-num{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);font-weight:600;letter-spacing:.04em}.app-shell section[data-screen=facturation] .kv-card .cd-amt{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:700;color:var(--ink)}.app-shell section[data-screen=facturation] .kv-card .cd-client{font-size:12px;font-weight:500;line-height:1.25;margin-bottom:2px}.app-shell section[data-screen=facturation] .kv-card .cd-bien{font-size:10.5px;color:var(--ink-3);line-height:1.3;margin-bottom:7px}.app-shell section[data-screen=facturation] .kv-card .cd-foot{display:flex;align-items:center;gap:5px}.app-shell section[data-screen=facturation] .kv-card .cd-ago{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;margin-left:auto}.app-shell section[data-screen=facturation] .kv-card.overdue{border-left:3px solid var(--danger);padding-left:8px}.app-shell section[data-screen=facturation] .kv-card .cd-ago.late{color:var(--danger);font-weight:700}.app-shell section[data-screen=facturation] .kv-add{padding:8px;text-align:center;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);border:1px dashed var(--line-2);border-radius:6px;letter-spacing:.05em;text-transform:uppercase;font-weight:600;background:transparent;cursor:pointer}.app-shell section[data-screen=facturation] .kv-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.app-shell section[data-screen=facturation] .dot.d-draft{background:#7a7e86}.app-shell .dot.d-sent{background:var(--accent)}.app-shell .dot.d-acc{background:var(--ok)}.app-shell .dot.d-emit{background:#2647d1}.app-shell .dot.d-paid{background:var(--ok-2)}.app-shell .dot.d-late{background:var(--danger)}.app-shell section[data-screen=facturation] .kv-drawer{position:absolute;top:0;right:0;bottom:0;width:340px;background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translate(100%);transition:.22s;z-index:10;box-shadow:-16px 0 40px -20px #0a0a0a33}.app-shell section[data-screen=facturation] .kv-drawer.on{transform:translate(0)}.app-shell section[data-screen=facturation] .kv-dh{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px}.app-shell section[data-screen=facturation] .kv-dh b{font-size:14px;display:block;line-height:1.2}.app-shell section[data-screen=facturation] .kv-dh .n{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.04em}.app-shell section[data-screen=facturation] .kv-dh .x{margin-left:auto;color:var(--ink-3);cursor:pointer;font-size:16px;line-height:1}.app-shell section[data-screen=facturation] .kv-db{padding:14px 16px;flex:1;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.app-shell section[data-screen=facturation] .kv-field{display:flex;flex-direction:column;gap:3px}.app-shell section[data-screen=facturation] .kv-field .l{font-family:JetBrains Mono,monospace;font-size:8.5px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.app-shell section[data-screen=facturation] .kv-field .v{padding:6px 9px;background:var(--paper);border:1px solid var(--line);border-radius:5px;font-size:12px}.app-shell section[data-screen=facturation] .kv-field .v.mono{font-family:JetBrains Mono,monospace;font-size:10.5px}.app-shell section[data-screen=facturation] .kv-df{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px}.app-shell section[data-screen=facturation] .kv-df .wbtn{flex:1;justify-content:center}.app-shell section[data-screen=facturation] .ftoast-host{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:99;pointer-events:none}.app-shell section[data-screen=facturation] .ftoast{background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:11px 18px;border-radius:999px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.app-shell section[data-screen=facturation] .ftoast.on{opacity:1;transform:translateY(0)}.app-shell section[data-screen=facturation] .tv-tabs{height:41px;flex:0 0 41px;padding:0 22px;border-bottom:none}.app-shell section[data-screen=facturation] .tv-tab{padding:0 10px;font-size:12.5px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:0}.app-shell section[data-screen=facturation] .tv-tab.on{color:var(--accent)}.app-shell section[data-screen=facturation] .tv-tab .n{font-size:10px;padding:1px 6px;font-weight:600}.app-shell section[data-screen=facturation] .tv-tab.on .n{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=facturation] .tv-toolbar{padding:10px 22px;gap:8px}.app-shell section[data-screen=facturation] .tv-search{padding:6px 10px;border-radius:5px}.app-shell section[data-screen=facturation] .tv-search input{font-size:12px}.app-shell section[data-screen=facturation] .tv-filt{padding:6px 10px;border-radius:5px;font-size:12px}.app-shell section[data-screen=facturation] .tv-gridwrap{padding:18px 22px 16px;box-sizing:border-box}.app-shell section[data-screen=facturation] .tv-grid{border:1px solid var(--line-2);border-radius:10px}.app-shell section[data-screen=facturation] .tv-grid .h{box-shadow:0 -1px 0 var(--line-2);border-right:none}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child{border-top-left-radius:10px}.app-shell section[data-screen=facturation] .tv-grid>.h:last-child{border-top-right-radius:10px}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child,.app-shell section[data-screen=facturation] .tv-grid>.h:last-child{background:transparent}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child:before,.app-shell section[data-screen=facturation] .tv-grid>.h:last-child:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-2);border-radius:inherit;z-index:-1}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child:before{top:-1px;right:0;bottom:0;left:-1px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell section[data-screen=facturation] .tv-grid>.h:last-child:before{top:-1px;right:-1px;bottom:0;left:0;border-top:1px solid var(--line-2);border-right:1px solid var(--line-2)}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child:after,.app-shell section[data-screen=facturation] .tv-grid>.h:last-child:after{content:"";position:absolute;z-index:-2;background:var(--paper)}.app-shell section[data-screen=facturation] .tv-grid>.h:first-child:after{top:-1px;right:0;bottom:0;left:-1px}.app-shell section[data-screen=facturation] .tv-grid>.h:last-child:after{top:-1px;right:-1px;bottom:0;left:0}.app-shell section[data-screen=facturation] .tv-grid>.row:last-of-type>.c:first-child{border-bottom-left-radius:10px}.app-shell section[data-screen=facturation] .tv-grid>.row:last-of-type>.c:last-child{border-bottom-right-radius:10px}.app-shell section[data-screen=facturation] .tv-grid:not(.selecting)>.h:nth-child(2){border-top-left-radius:10px;background:transparent}.app-shell section[data-screen=facturation] .tv-grid:not(.selecting)>.h:nth-child(2):before{content:"";position:absolute;top:-1px;right:0;bottom:0;left:-1px;background:var(--paper-2);border-radius:inherit;z-index:-1;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell section[data-screen=facturation] .tv-grid:not(.selecting)>.h:nth-child(2):after{content:"";position:absolute;top:-1px;right:0;bottom:0;left:-1px;background:var(--paper);z-index:-2}.app-shell section[data-screen=facturation] .tv-grid:not(.selecting)>.row:last-of-type>.c:nth-child(2){border-bottom-left-radius:10px}.app-shell section[data-screen=photos].on{display:flex;height:100%;overflow:hidden}.app-shell section[data-screen=photos] .bib-tree{width:232px;flex:0 0 232px;border-right:1px solid var(--line);overflow-y:auto;padding:10px 8px;background:var(--paper)}.app-shell section[data-screen=photos] .bib-m{display:flex;align-items:center;gap:6px;padding:6px 7px;border-radius:5px;font-size:11.5px;font-weight:500;cursor:pointer;color:var(--ink-2);-webkit-user-select:none;user-select:none}.app-shell section[data-screen=photos] .bib-m:hover{background:var(--paper-2)}.app-shell section[data-screen=photos] .bib-m.on{background:var(--paper-3);color:var(--ink)}.app-shell section[data-screen=photos] .bib-m+.bib-m{margin-top:2px}.app-shell section[data-screen=photos] .bib-p{padding:5px 7px 5px 24px;font-size:11px;color:var(--ink-2);border-radius:5px;cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.app-shell section[data-screen=photos] .bib-p:hover{background:var(--paper-2)}.app-shell section[data-screen=photos] .bib-p.on{background:var(--paper-3);color:var(--ink);font-weight:500}.app-shell section[data-screen=photos] .bib-e{padding:5px 7px 5px 38px;font-size:10.5px;color:var(--ink-3);border-radius:5px;cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.app-shell section[data-screen=photos] .bib-e:hover{background:var(--paper-2)}.app-shell section[data-screen=photos] .bib-e.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.app-shell section[data-screen=photos] .bib-tree .chev{font-size:8px;color:var(--ink-3);width:9px;flex:0 0 9px;text-align:center}.app-shell section[data-screen=photos] .bib-tree .n{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3)}.app-shell section[data-screen=photos] .bib-e.on .n{color:var(--accent)}.app-shell section[data-screen=photos] .bib-tree .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell section[data-screen=photos] .bib-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.app-shell section[data-screen=photos] .bib-top{height:44px;flex:0 0 44px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--line)}.app-shell section[data-screen=photos] .bib-crumbs{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell section[data-screen=photos] .bib-crumbs b{color:var(--ink);font-weight:600}.app-shell section[data-screen=photos] .bib-crumbs a{color:var(--ink-3);cursor:pointer}.app-shell section[data-screen=photos] .bib-crumbs a:hover{color:var(--accent);text-decoration:underline}.app-shell section[data-screen=photos] .bib-actions{margin-left:auto;display:flex;gap:7px}.app-shell section[data-screen=photos] .bib-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid transparent;border-radius:5px;font-size:11px;font-weight:500;background:transparent;color:var(--ink-2);cursor:pointer;font-family:inherit}.app-shell section[data-screen=photos] .bib-btn:hover{border-color:var(--line-2);color:var(--ink)}.app-shell section[data-screen=photos] .bib-toolbar{display:flex;align-items:center;gap:7px;padding:8px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.app-shell section[data-screen=photos] .bib-info{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.app-shell section[data-screen=photos] .bib-info b{color:var(--ink)}.app-shell section[data-screen=photos] .bib-info.r{margin-left:auto}.app-shell section[data-screen=photos] .bib-gridwrap{flex:1;overflow:auto}.app-shell section[data-screen=photos] .bib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;padding:16px 18px}.app-shell section[data-screen=photos] .bib-pho{position:relative;aspect-ratio:1/1;border-radius:6px;overflow:hidden;cursor:pointer;background-size:cover;background-position:center}.app-shell section[data-screen=photos] .bib-pho:hover{outline:2px solid var(--accent);outline-offset:1px}.app-shell section[data-screen=photos] .bib-pho .cap{position:absolute;left:6px;bottom:6px;font-family:JetBrains Mono,monospace;font-size:8.5px;color:#fff;background:#00000080;padding:2px 6px;border-radius:3px;letter-spacing:.03em;font-weight:600;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell section[data-screen=photos] .bib-pho .badge{position:absolute;top:6px;right:6px;font-family:JetBrains Mono,monospace;font-size:7px;text-transform:uppercase;font-weight:700;padding:2px 6px;border-radius:3px;letter-spacing:.03em}.app-shell section[data-screen=photos] .bib-pho .badge.avant{background:#c4502ae6;color:#fff}.app-shell section[data-screen=photos] .bib-pho .badge.apres{background:#0a8757e6;color:#fff}.app-shell section[data-screen=photos] .bib-empty{grid-column:1/-1;padding:40px;text-align:center;color:var(--ink-3);font-size:12.5px}.app-shell section[data-screen=settings].on{display:flex;flex-direction:column;height:100%}.app-shell .set-body{flex:1;display:flex;overflow:hidden;min-height:0}.app-shell .set-col{flex:1;overflow-y:auto;padding-bottom:24px}.app-shell .set-col+.set-col{border-left:1px solid var(--line)}.app-shell .set-col-h{padding:18px 24px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:1}.app-shell .set-col-h b{font-size:16px;font-weight:600;letter-spacing:-.01em;display:block}.app-shell .set-col-h span{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3)}.app-shell .set-slab{padding:16px 24px 8px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.app-shell .set-row{margin:0 24px 8px;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2)}.app-shell .set-row .ic{width:30px;height:30px;border-radius:8px;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;font-size:14px;flex:0 0 30px}.app-shell .set-row .ic.av{color:#fff;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700;border:none}.app-shell .set-row b{flex:1;font-size:12.5px;font-weight:500}.app-shell .set-row b span{display:block;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);font-weight:400;margin-top:1px;text-transform:none;letter-spacing:0}.app-shell .set-row .chev{color:var(--ink-3);font-size:12px}.app-shell .set-row.add{background:transparent;border-style:dashed;cursor:pointer}.app-shell .set-row.add b{color:var(--accent);font-weight:500}.app-shell .set-row[data-route]:hover{border-color:var(--ink-3)}.app-shell .set-pill{display:inline-flex;align-items:center;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:5px;font-weight:700;white-space:nowrap;flex:0 0 auto}.app-shell .set-pill.ok{background:#dcf3e8;color:var(--ok)}.app-shell .set-pill.warn{background:#fbe8de;color:var(--warn)}.app-shell .set-sw{width:32px;height:19px;border-radius:999px;background:var(--paper-3);position:relative;flex:0 0 auto;cursor:pointer}.app-shell .set-sw:after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:.15s}.app-shell .set-sw.on{background:var(--accent)}.app-shell .set-sw.on:after{transform:translate(13px)}.app-shell .set-alert{margin:16px 24px 8px;background:#fbe8de;border:1px solid rgba(196,80,42,.3);border-radius:9px;padding:11px 14px;display:flex;align-items:center;gap:10px}.app-shell .set-alert .ic{font-size:15px;color:var(--warn)}.app-shell .set-alert .tx{flex:1}.app-shell .set-alert .tx b{display:block;font-size:11.5px;font-weight:700;color:var(--warn)}.app-shell .set-alert .tx span{display:block;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--warn);opacity:.85;margin-top:1px}.app-shell .set-alert .go{font-family:JetBrains Mono,monospace;font-size:9.5px;font-weight:700;color:var(--warn);text-transform:uppercase;cursor:pointer;flex:0 0 auto}.app-shell .grid .row.archived .c{opacity:.5}.app-shell .scroll-y{overflow-y:auto}.app-shell ::-webkit-scrollbar{width:10px;height:10px}.app-shell ::-webkit-scrollbar-track{background:transparent}.app-shell ::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px;border:2px solid var(--paper)}.app-shell ::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.app-shell section[data-screen=mission-detail]{--ok-soft:#dcf3e8;--warn-soft:#fbe8de;--gold:#a07300;--gold-soft:#fff5d6}.app-shell section[data-screen=mission-detail] .mdback{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;color:var(--ink-3);cursor:pointer;padding:14px 22px 0}.app-shell section[data-screen=mission-detail] .mdback:hover{color:var(--ink)}.app-shell section[data-screen=mission-detail] .wmono{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.04em}.app-shell section[data-screen=mission-detail] .mdhead{padding:10px 22px 0}.app-shell section[data-screen=mission-detail] .mdhead-body{display:flex;gap:14px;align-items:flex-start}.app-shell section[data-screen=mission-detail] .mdcover{width:112px;height:80px;border-radius:8px;object-fit:cover;flex:0 0 auto}.app-shell section[data-screen=mission-detail] .mdhead-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.app-shell section[data-screen=mission-detail] .mdhead-id{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:8px}.app-shell section[data-screen=mission-detail] .mdhead h1{font-size:24px;font-weight:600;letter-spacing:-.015em;line-height:1.2}.app-shell section[data-screen=mission-detail] .mdhead .addr2{font-size:12.5px;color:var(--ink-3);margin-top:3px}.app-shell section[data-screen=mission-detail] .mdhead-meta{display:flex;gap:26px;margin-top:14px;flex-wrap:wrap}.app-shell section[data-screen=mission-detail] .mdhead-meta .m{display:flex;flex-direction:column;gap:2px}.app-shell section[data-screen=mission-detail] .mdhead-meta .m .l{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.app-shell section[data-screen=mission-detail] .mdhead-meta .m .v{font-size:12.5px;font-weight:500}.app-shell section[data-screen=mission-detail] .mdhead-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.app-shell section[data-screen=mission-detail] .mdhead-actions{display:flex;gap:7px}.app-shell section[data-screen=mission-detail] .mdhead-status{display:flex;align-items:center;gap:10px}.app-shell section[data-screen=mission-detail] .mdteam{display:flex}.app-shell section[data-screen=mission-detail] .mdteam .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;border:2px solid var(--paper);margin-left:-6px}.app-shell section[data-screen=mission-detail] .mdteam .av:first-child{margin-left:0}.app-shell section[data-screen=mission-detail] .mdprogress{display:flex;align-items:center;gap:7px;width:140px}.app-shell section[data-screen=mission-detail] .mdprogress .bar{flex:1;height:5px;border-radius:99px;background:var(--paper-3);overflow:hidden}.app-shell section[data-screen=mission-detail] .mdprogress .bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.app-shell section[data-screen=mission-detail] .mdprogress em{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);font-style:normal}.app-shell section[data-screen=mission-detail] .wbtn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border:1px solid var(--line-2);border-radius:6px;font-size:11.5px;font-weight:500;background:transparent;color:var(--ink);cursor:pointer;font-family:inherit;white-space:nowrap}.app-shell section[data-screen=mission-detail] .wbtn:hover{background:var(--paper-3)}.app-shell section[data-screen=mission-detail] .wbtn.acc{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell section[data-screen=mission-detail] .wbtn.acc:hover{background:var(--accent-2)}.app-shell section[data-screen=mission-detail] .wbtn.ghost{border-color:var(--line-2);color:var(--ink-2)}.app-shell section[data-screen=mission-detail] .pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-size:10.5px;font-weight:600;white-space:nowrap}.app-shell section[data-screen=mission-detail] .pill.md-cours{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=mission-detail] .pill.md-done{background:var(--ok-soft);color:var(--ok)}.app-shell section[data-screen=mission-detail] .pill.md-todo{background:var(--paper-3);color:var(--ink-2)}.app-shell section[data-screen=mission-detail] .pill.md-labo{background:var(--gold-soft);color:var(--gold)}.app-shell section[data-screen=mission-detail] .stat-pill{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:3px;font-weight:700}.app-shell section[data-screen=mission-detail] .stat-pill.emitted{background:#e6ebff;color:#2647d1}.app-shell section[data-screen=mission-detail] .p7strip{display:flex;gap:16px;padding:12px 22px;border-top:1px solid var(--line);margin-top:16px;flex-wrap:wrap;align-items:center;background:var(--paper-2)}.app-shell section[data-screen=mission-detail] .p7strip .cell{display:flex;align-items:center;gap:8px;font-size:12px}.app-shell section[data-screen=mission-detail] .p7strip .cell b{font-weight:600}.app-shell section[data-screen=mission-detail] .p7strip .cell .who{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;flex:0 0 auto}.app-shell section[data-screen=mission-detail] .p7strip .who-info{display:flex;flex-direction:column;gap:1px;line-height:1.2}.app-shell section[data-screen=mission-detail] .p7strip .who-info .role{font-family:JetBrains Mono,monospace;font-size:8.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.app-shell section[data-screen=mission-detail] .p7strip .who-info b{font-size:12px;font-weight:600}.app-shell section[data-screen=mission-detail] .mdtabs{display:flex;gap:22px;padding:0 22px;border-bottom:1px solid var(--line)}.app-shell section[data-screen=mission-detail] .mdtab{padding:11px 0;font-size:12.5px;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:6px}.app-shell section[data-screen=mission-detail] .mdtab:hover{color:var(--ink)}.app-shell section[data-screen=mission-detail] .mdtab .n{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);background:var(--paper-2);border-radius:99px;padding:1px 6px;font-weight:600}.app-shell section[data-screen=mission-detail] .mdtab.on{color:var(--accent);border-color:var(--accent);font-weight:600}.app-shell section[data-screen=mission-detail] .mdtab.on .n{color:var(--accent);background:var(--accent-soft)}.app-shell section[data-screen=mission-detail] .mdpanel{display:none}.app-shell section[data-screen=mission-detail] .mdpanel.on{display:block}.app-shell section[data-screen=mission-detail] .p7metabar-zone{position:relative}.app-shell section[data-screen=mission-detail] .p7metabar{display:none;align-items:center;gap:20px;padding:11px 22px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--paper-2)}.app-shell section[data-screen=mission-detail] .p7metabar.on{display:flex}.app-shell section[data-screen=mission-detail] .p7metabar .m{display:flex;flex-direction:column;gap:1px}.app-shell section[data-screen=mission-detail] .p7metabar .m .l{font-family:JetBrains Mono,monospace;font-size:8.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.app-shell section[data-screen=mission-detail] .p7metabar .m .v{font-size:12px;font-weight:500}.app-shell section[data-screen=mission-detail] .p7metabar .photolink{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-weight:600;cursor:pointer;white-space:nowrap}.app-shell section[data-screen=mission-detail] .p7metabar .nophoto{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600;white-space:nowrap}.app-shell section[data-screen=mission-detail] .mdsec{padding:18px 22px 26px}.app-shell section[data-screen=mission-detail] .wsw{width:26px;height:15px;border-radius:99px;background:var(--paper-3);border:1px solid var(--line-2);position:relative;flex:0 0 auto;cursor:pointer;display:inline-block}.app-shell section[data-screen=mission-detail] .wsw:after{content:"";position:absolute;top:1px;left:1px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0a0a0a40;transition:left .15s}.app-shell section[data-screen=mission-detail] .wsw.on{background:var(--ok);border-color:var(--ok)}.app-shell section[data-screen=mission-detail] .wsw.on:after{left:12px}.app-shell section[data-screen=mission-detail] .pivtable{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px;table-layout:fixed}.app-shell section[data-screen=mission-detail] .pivtable thead th{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600;padding:8px 11px;border-bottom:1px solid var(--line);background:var(--paper-2);text-align:left}.app-shell section[data-screen=mission-detail] .pivtable td{padding:0 11px;height:36px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--paper);vertical-align:middle}.app-shell section[data-screen=mission-detail] .pivtable td:last-child{border-right:none}.app-shell section[data-screen=mission-detail] .pivtable tbody tr:hover td:not(.etage):not(.piece){background:var(--paper-3)}.app-shell section[data-screen=mission-detail] .pivtable td.etage{background:var(--paper-2);vertical-align:top;padding:12px 8px;text-align:center}.app-shell section[data-screen=mission-detail] .pivtable td.etage b{display:block;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:800;margin-top:6px}.app-shell section[data-screen=mission-detail] .pivtable td.etage span{display:block;font-size:8.5px;color:var(--ink-3);margin-top:2px;line-height:1.4}.app-shell section[data-screen=mission-detail] .pivtable td.piece{font-weight:500;background:var(--paper-2)}.app-shell section[data-screen=mission-detail] .pivtable td.ck{text-align:center}.app-shell section[data-screen=mission-detail] .pivtable td.acts{text-align:center}.app-shell section[data-screen=mission-detail] .pivtable td.acts .acts-wrap{display:flex;gap:6px;justify-content:center;align-items:center}.app-shell section[data-screen=mission-detail] .pivtable td.acts .racbtn{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);color:var(--ink-3);font-size:11px;cursor:pointer;font-family:inherit;line-height:1}.app-shell section[data-screen=mission-detail] .pivtable td.acts .racbtn svg{display:block}.app-shell section[data-screen=mission-detail] .pivtable td.acts .racbtn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.app-shell section[data-screen=mission-detail] .pivtable td.acts .racbtn.del:hover{background:#fbe3e3;color:#c0392b;border-color:#c0392b}.app-shell section[data-screen=mission-detail] .pivtable td.acts .racbtn.del.confirm{width:auto;padding:0 8px;border-radius:11px;background:#c0392b;color:#fff;border-color:#c0392b;font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.app-shell section[data-screen=mission-detail] .pivtable colgroup col.selcol{width:0}.app-shell section[data-screen=mission-detail] .pivtable.selecting colgroup col.selcol{width:32px}.app-shell section[data-screen=mission-detail] .pivtable th.selth,.app-shell section[data-screen=mission-detail] .pivtable td.selcell{padding:0;overflow:hidden;text-align:center}.app-shell section[data-screen=mission-detail] .pivtable.selecting th.selth,.app-shell section[data-screen=mission-detail] .pivtable.selecting td.selcell{overflow:visible}.app-shell section[data-screen=mission-detail] .pivtable .pck{width:14px;height:14px;border:1.5px solid var(--ink-3);border-radius:3px;position:relative;cursor:pointer;display:inline-block}.app-shell section[data-screen=mission-detail] .pivtable .pck.on{background:var(--accent);border-color:var(--accent)}.app-shell section[data-screen=mission-detail] .pivtable .pck.on:after{content:"";position:absolute;left:3px;top:.5px;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.app-shell section[data-screen=mission-detail] .pivtable.editmode td:not(.etage):not(.piece):not(.photos):not(.acts):not(.selcell):not(.ck){cursor:text}.app-shell section[data-screen=mission-detail] .pivtable td.editing{background:#fff;outline:1.5px solid var(--accent);outline-offset:-1.5px;position:relative;z-index:2;cursor:text}.app-shell section[data-screen=mission-detail] .pivtable td.editing input{width:100%;height:100%;font:inherit;background:transparent;border:none;outline:none}.app-shell section[data-screen=mission-detail] .pivtable td.photos{cursor:pointer;text-align:center}.app-shell section[data-screen=mission-detail] .planthumb{width:50px;height:36px;border:1.5px solid var(--ink-2);border-radius:2px;background:var(--paper);position:relative;margin:0 auto}.app-shell section[data-screen=mission-detail] .planthumb:before,.app-shell section[data-screen=mission-detail] .planthumb:after{content:"";position:absolute;background:var(--line-2)}.app-shell section[data-screen=mission-detail] .planthumb.p-sol:before{left:50%;top:0;bottom:0;width:1px}.app-shell section[data-screen=mission-detail] .planthumb.p-rez:before{left:50%;top:0;bottom:0;width:1px}.app-shell section[data-screen=mission-detail] .planthumb.p-rez:after{left:0;right:0;top:50%;height:1px}.app-shell section[data-screen=mission-detail] .planthumb.p-1er:before{left:34%;top:0;bottom:0;width:1px}.app-shell section[data-screen=mission-detail] .planthumb.p-1er:after{left:67%;top:0;bottom:0;width:1px}.app-shell section[data-screen=mission-detail] .planthumb.p-gen{display:flex;align-items:center;justify-content:center;font-size:15px}.app-shell section[data-screen=mission-detail] .res-conf{color:var(--ok);font-weight:500}.app-shell section[data-screen=mission-detail] .res-nonconf{color:var(--warn);font-weight:600}.app-shell section[data-screen=mission-detail] .res-pend{color:var(--ink-3)}.app-shell section[data-screen=mission-detail] .qty{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);margin-left:5px}.app-shell section[data-screen=mission-detail] .phthumb{width:50px;height:36px;border-radius:4px;margin:0 auto;position:relative;background:var(--paper-3);border:1.5px solid var(--paper);display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 1px 2px #0a0a0a1a}.app-shell section[data-screen=mission-detail] .phthumb i{font-style:normal;line-height:1}.app-shell section[data-screen=mission-detail] .phthumb .cnt{position:absolute;right:-4px;bottom:-4px;background:var(--ink);color:#fff;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:700;line-height:1;padding:2px 4px;border-radius:8px;box-shadow:0 1px 2px #0a0a0a40}.app-shell section[data-screen=mission-detail] .pivtable td.photos:hover .phthumb{border-color:var(--accent-soft)}.app-shell section[data-screen=mission-detail] .phthumb.empty{background:var(--paper);border:1.5px dashed var(--line-2);color:var(--ink-3);font-size:16px;font-weight:300}.app-shell section[data-screen=mission-detail] .pivtable td.photos:hover .phthumb.empty{border-color:var(--accent);color:var(--accent)}@keyframes mdImportFlash{0%{background:var(--accent-soft)}to{background:transparent}}.app-shell section[data-screen=mission-detail] .pivtable.importing tbody td{animation:mdImportFlash .9s ease}.app-shell .row.row-flash>.c{animation:mdImportFlash 1.1s ease}.app-shell section[data-screen=mission-detail] .mdtoast-host{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:99}.app-shell section[data-screen=mission-detail] .mdtoast{background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:11px 18px;border-radius:999px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.app-shell section[data-screen=mission-detail] .mdtoast.on{opacity:1;transform:translateY(0)}.app-shell section[data-screen=diagnostic-detail]{--ok-soft:#dcf3e8;--warn-soft:#fbe8de;--gold:#a07300;--gold-soft:#fff5d6}.app-shell section[data-screen=diagnostic-detail] .mdback{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;color:var(--ink-3);cursor:pointer;padding:14px 22px 0}.app-shell section[data-screen=diagnostic-detail] .mdback:hover{color:var(--ink)}.app-shell section[data-screen=diagnostic-detail] .wmono{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.04em}.app-shell section[data-screen=diagnostic-detail] .mdhead{padding:10px 22px 0}.app-shell section[data-screen=diagnostic-detail] .mdhead-body{display:flex;gap:14px;align-items:flex-start}.app-shell section[data-screen=diagnostic-detail] .mdcover{width:112px;height:80px;border-radius:8px;object-fit:cover;flex:0 0 auto}.app-shell section[data-screen=diagnostic-detail] .mdhead-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.app-shell section[data-screen=diagnostic-detail] .mdhead-id{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:8px}.app-shell section[data-screen=diagnostic-detail] .mdhead h1{font-size:24px;font-weight:600;letter-spacing:-.015em;line-height:1.2}.app-shell section[data-screen=diagnostic-detail] .mdhead .addr2{font-size:12.5px;color:var(--ink-3);margin-top:3px}.app-shell section[data-screen=diagnostic-detail] .mdhead-meta{display:flex;gap:26px;margin-top:14px;flex-wrap:wrap}.app-shell section[data-screen=diagnostic-detail] .mdhead-meta .m{display:flex;flex-direction:column;gap:2px}.app-shell section[data-screen=diagnostic-detail] .mdhead-meta .m .l{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.app-shell section[data-screen=diagnostic-detail] .mdhead-meta .m .v{font-size:12.5px;font-weight:500}.app-shell section[data-screen=diagnostic-detail] .mdhead-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.app-shell section[data-screen=diagnostic-detail] .mdhead-actions{display:flex;gap:7px}.app-shell section[data-screen=diagnostic-detail] .mdhead-status{display:flex;align-items:center;gap:10px}.app-shell section[data-screen=diagnostic-detail] .mdteam{display:flex}.app-shell section[data-screen=diagnostic-detail] .mdteam .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;border:2px solid var(--paper);margin-left:-6px}.app-shell section[data-screen=diagnostic-detail] .mdteam .av:first-child{margin-left:0}.app-shell section[data-screen=diagnostic-detail] .mdprogress{display:flex;align-items:center;gap:7px;width:140px}.app-shell section[data-screen=diagnostic-detail] .mdprogress .bar{flex:1;height:5px;border-radius:99px;background:var(--paper-3);overflow:hidden}.app-shell section[data-screen=diagnostic-detail] .mdprogress .bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.app-shell section[data-screen=diagnostic-detail] .mdprogress em{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);font-style:normal}.app-shell section[data-screen=diagnostic-detail] .wbtn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border:1px solid var(--line-2);border-radius:6px;font-size:11.5px;font-weight:500;background:transparent;color:var(--ink);cursor:pointer;font-family:inherit;white-space:nowrap}.app-shell section[data-screen=diagnostic-detail] .wbtn:hover{background:var(--paper-3)}.app-shell section[data-screen=diagnostic-detail] .wbtn.acc{background:var(--accent);color:#fff;border-color:var(--accent)}.app-shell section[data-screen=diagnostic-detail] .wbtn.acc:hover{background:var(--accent-2)}.app-shell section[data-screen=diagnostic-detail] .wbtn.ghost{border-color:var(--line-2);color:var(--ink-2)}.app-shell section[data-screen=diagnostic-detail] .pill.md-cours{background:var(--accent-soft);color:var(--accent)}.app-shell section[data-screen=diagnostic-detail] .pill.md-done{background:var(--ok-soft);color:var(--ok)}.app-shell section[data-screen=diagnostic-detail] .stat-pill{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:3px;font-weight:700}.app-shell section[data-screen=diagnostic-detail] .stat-pill.emitted{background:#e6ebff;color:#2647d1}.app-shell section[data-screen=diagnostic-detail] .p7strip{display:flex;gap:16px;padding:12px 22px;border-top:1px solid var(--line);margin-top:16px;flex-wrap:wrap;align-items:center;background:var(--paper-2)}.app-shell section[data-screen=diagnostic-detail] .p7strip .cell{display:flex;align-items:center;gap:8px;font-size:12px}.app-shell section[data-screen=diagnostic-detail] .p7strip .cell b{font-weight:600}.app-shell section[data-screen=diagnostic-detail] .p7strip .cell .who{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;flex:0 0 auto}.app-shell section[data-screen=diagnostic-detail] .p7strip .who-info{display:flex;flex-direction:column;gap:1px;line-height:1.2}.app-shell section[data-screen=diagnostic-detail] .p7strip .who-info .role{font-family:JetBrains Mono,monospace;font-size:8.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.app-shell section[data-screen=diagnostic-detail] .p7strip .who-info b{font-size:12px;font-weight:600}.app-shell section[data-screen=diagnostic-detail] .mdtabs{display:flex;gap:22px;padding:0 22px;border-bottom:1px solid var(--line)}.app-shell section[data-screen=diagnostic-detail] .mdtab{padding:11px 0;font-size:12.5px;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:6px}.app-shell section[data-screen=diagnostic-detail] .mdtab:hover{color:var(--ink)}.app-shell section[data-screen=diagnostic-detail] .mdtab .n{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);background:var(--paper-2);border-radius:99px;padding:1px 6px;font-weight:600}.app-shell section[data-screen=diagnostic-detail] .mdtab.on{color:var(--accent);border-color:var(--accent);font-weight:600}.app-shell section[data-screen=diagnostic-detail] .mdtab.on .n{color:var(--accent);background:var(--accent-soft)}.app-shell section[data-screen=diagnostic-detail] .grid .grp{grid-column:1/-1;background:var(--paper-2);border-bottom:1px solid var(--line-2);padding:6px 12px;display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--ink-2)}.app-shell section[data-screen=diagnostic-detail] .grid .grp .n{color:var(--ink-3);font-weight:500}.app-shell section[data-screen=diagnostic-detail] .grid .grp .menu{margin-left:auto;color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}.app-shell section[data-screen=diagnostic-detail] .grid .grp.addline{background:var(--paper);color:var(--ink-3);font-weight:400;cursor:pointer}.app-shell section[data-screen=diagnostic-detail] .grid .grp.addline:hover{color:var(--accent)}.app-shell .pgfoot{position:sticky;bottom:0;left:0;z-index:4;display:flex;align-items:center;gap:16px;padding:9px 24px;border-top:1px solid var(--line-2);background:var(--paper-2);flex-wrap:wrap;margin-top:auto;flex-shrink:0}.app-shell section[data-screen=missions].on,.app-shell section[data-screen=clients].on,.app-shell section[data-screen=diagnostic].on,.app-shell section[data-screen=rapport].on,.app-shell section[data-screen=catalogs].on{display:flex;flex-direction:column;min-height:100%}.app-shell .pgsize{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink-2);white-space:nowrap}.app-shell .pgsize select{padding:3px 6px;border:1px solid var(--line-2);border-radius:5px;background:var(--paper);font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:600;color:var(--ink);cursor:pointer}.app-shell .pgrange{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);white-space:nowrap}.app-shell .pgnums{display:flex;align-items:center;gap:2px;margin-left:auto;flex-wrap:wrap}.app-shell .pgnum{width:24px;height:24px;display:grid;place-items:center;border-radius:5px;font-size:11px;color:var(--ink-2);font-family:JetBrains Mono,monospace;font-weight:600;cursor:pointer;background:none;border:none}.app-shell .pgnum:hover{background:var(--paper-3)}.app-shell .pgnum.on{background:var(--accent);color:#fff;cursor:default}.app-shell .pgnum.dots{cursor:default;color:var(--ink-3);font-weight:400;width:auto;padding:0 3px}.app-shell .pgarrow{width:24px;height:24px;display:grid;place-items:center;border-radius:5px;border:1px solid var(--line-2);color:var(--ink-2);cursor:pointer;background:var(--paper)}.app-shell .pgarrow:hover:not(:disabled){background:var(--paper-3)}.app-shell .pgarrow:disabled{opacity:.35;cursor:default}.app-shell section[data-screen=facturation] .pgfoot{position:static;flex:0 0 auto;padding:9px 22px;border-top:1px solid var(--line)}.app-shell section[data-screen=diagnostic-detail] #pgfootInsp{position:static}.app-shell #gridWrapInsp{padding:0 24px 20px;box-sizing:border-box}.app-shell #dedBg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a66;z-index:60;opacity:0;pointer-events:none;transition:opacity .22s}.app-shell #dedBg.on{opacity:1;pointer-events:auto}.app-shell #dedPanel{position:fixed;top:0;right:0;bottom:0;left:var(--side-w);z-index:61;display:flex;background:var(--paper);border-left:1px solid var(--line-2);box-shadow:-24px 0 48px -18px #0a0a0a40;pointer-events:none;transform:translate(100%);transition:transform .24s cubic-bezier(.2,.9,.3,1)}.app-shell #dedPanel.on{pointer-events:auto;transform:translate(0)}.app-shell .app.side-collapsed #dedPanel{left:var(--side-w-collapsed)}.app-shell .ded-preview{flex:1;overflow:auto;background:var(--paper-3);padding:32px;display:flex;justify-content:center;border-right:1px solid var(--line)}.app-shell .ded-form{flex:0 0 46%;max-width:640px;display:flex;flex-direction:column;background:var(--paper);overflow:hidden}.app-shell .ded-h{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex:0 0 auto}.app-shell .ded-h .x{margin-left:auto;color:var(--ink-3);cursor:pointer;font-size:17px;line-height:1;padding:4px}.app-shell .ded-h .x:hover{color:var(--ink)}.app-shell .ded-ht{display:flex;flex-direction:column;gap:2px}.app-shell .ded-ht b{font-size:15px}.app-shell .ded-ht span{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);letter-spacing:.04em}.app-shell .ded-body{flex:1;overflow:auto;padding:18px 22px;display:flex;flex-direction:column;gap:18px}.app-shell .ded-sect{font-family:JetBrains Mono,monospace;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:700;display:flex;align-items:center;gap:8px}.app-shell .ded-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-shell .ded-field{display:flex;flex-direction:column;gap:4px}.app-shell .ded-field label{font-size:10px;color:var(--ink-3);font-weight:600}.app-shell .ded-field input,.app-shell .ded-field select{padding:7px 9px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:var(--paper);color:var(--ink);font-family:inherit}.app-shell .ded-field input:focus,.app-shell .ded-field select:focus{border-color:var(--accent);outline:none}.app-shell .ded-lnhead{display:grid;grid-template-columns:1fr 46px 78px 78px 24px;gap:6px;padding:0 2px 4px;font-family:JetBrains Mono,monospace;font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}.app-shell .ded-lnrows{display:flex;flex-direction:column;gap:5px}.app-shell .ded-lnrow{display:grid;grid-template-columns:1fr 46px 78px 78px 24px;gap:6px;align-items:start}.app-shell .ded-lnrow input{padding:6px 7px;border:1px solid var(--line);border-radius:4px;font-size:12px;background:var(--paper);color:var(--ink);width:100%;font-family:inherit}.app-shell .ded-lnrow input:focus{border-color:var(--accent);outline:none}.app-shell .ded-lnrow textarea.ded-lnlabel{padding:6px 7px;border:1px solid var(--line);border-radius:4px;font-size:12px;background:var(--paper);color:var(--ink);width:100%;font-family:inherit;line-height:1.4;resize:none;overflow:hidden;min-height:28px;display:block}.app-shell .ded-lnrow textarea.ded-lnlabel:focus{border-color:var(--accent);outline:none}.app-shell .ded-lnrow .ln-qty,.app-shell .ded-lnrow .ln-price{text-align:right;font-family:JetBrains Mono,monospace;padding-top:6px}.app-shell .ded-lntotal{font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;text-align:right;color:var(--ink);padding-top:6px}.app-shell .ded-lndel{width:21px;height:21px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink-3);display:grid;place-items:center;font-size:12px;line-height:1;cursor:pointer;margin-top:3px}.app-shell .ded-lndel:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.app-shell section[data-screen=facturation] .ded-addln{align-self:flex-start;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--accent);border:1px dashed var(--accent);background:var(--accent-soft);padding:6px 12px;border-radius:6px;cursor:pointer}.app-shell #dedGenPdf,.app-shell #dedConvert,.app-shell #dedPdfClose{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line-2);border-radius:5px;font-size:12px;font-weight:500;background:transparent;color:var(--ink)}.app-shell .ded-totals{display:flex;flex-direction:column;gap:5px;padding-top:12px;border-top:1px solid var(--line);align-self:flex-end;min-width:230px}.app-shell .ded-totals div{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2)}.app-shell .ded-totals div span{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--ink)}.app-shell .ded-totals div.grand{font-size:15px;font-weight:700;color:var(--ink);padding-top:6px;border-top:1px solid var(--line-2)}.app-shell .ded-totals div.grand span{font-size:15.5px}.app-shell .ded-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto;background:var(--paper-2)}.app-shell .ded-foot .sp{flex:1}.app-shell .dpdf-sheet{width:560px;min-height:790px;background:#fff;box-shadow:0 24px 60px -20px #00000059;padding:40px 44px;font-family:Inter Tight,sans-serif;color:#111}.app-shell .dpdf-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:2px solid #111;margin-bottom:18px}.app-shell .dpdf-head b{font-size:15px}.app-shell .dpdf-head .from{font-size:11.5px;line-height:1.5;color:#333}.app-shell .dpdf-type{text-align:right;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:700;letter-spacing:.04em}.app-shell .dpdf-type span{display:block;font-size:11px;font-weight:600;color:#555;margin-top:3px}.app-shell .dpdf-meta{display:flex;gap:40px;margin-bottom:22px;font-size:12px}.app-shell .dpdf-meta b{display:block;font-family:JetBrains Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#777;margin-bottom:4px}.app-shell .dpdf-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:18px}.app-shell .dpdf-table th{text-align:left;font-family:JetBrains Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#777;padding:6px 4px;border-bottom:2px solid #111}.app-shell .dpdf-table td{padding:8px 4px;border-bottom:1px solid #ddd;vertical-align:top}.app-shell .dpdf-table th:not(:first-child),.app-shell .dpdf-table td:not(:first-child){text-align:right}.app-shell .dpdf-totals{margin-left:auto;width:240px;display:flex;flex-direction:column;gap:5px;font-size:12.5px}.app-shell .dpdf-totals div{display:flex;justify-content:space-between}.app-shell .dpdf-totals div.grand{font-size:15px;font-weight:700;border-top:2px solid #111;padding-top:6px;margin-top:4px}#app{min-height:100vh}.app-shell .view>section,.app-shell .view>div{display:block}.app-shell .grid>.h.h-first,.app-shell .tv-grid>.h.h-first{border-top-left-radius:10px}.app-shell .grid>.h.h-last,.app-shell .tv-grid>.h.h-last{border-top-right-radius:10px}.app-shell .grid>.h.h-first,.app-shell .grid>.h.h-last,.app-shell .tv-grid>.h.h-first,.app-shell .tv-grid>.h.h-last{background:transparent}.app-shell .grid>.h.h-first:before,.app-shell .grid>.h.h-last:before,.app-shell .tv-grid>.h.h-first:before,.app-shell .tv-grid>.h.h-last:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-2);border-radius:inherit;z-index:-1}.app-shell .grid>.h.h-first:before,.app-shell .tv-grid>.h.h-first:before{top:-1px;right:0;bottom:0;left:-1px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}.app-shell .grid>.h.h-last:before,.app-shell .tv-grid>.h.h-last:before{top:-1px;right:-1px;bottom:0;left:0;border-top:1px solid var(--line-2);border-right:1px solid var(--line-2)}.app-shell .grid>.h.h-first:after,.app-shell .grid>.h.h-last:after,.app-shell .tv-grid>.h.h-first:after,.app-shell .tv-grid>.h.h-last:after{content:"";position:absolute;background:var(--paper);z-index:-2}.app-shell .grid>.h.h-first:after,.app-shell .tv-grid>.h.h-first:after{top:-1px;right:0;bottom:0;left:-1px}.app-shell .grid>.h.h-last:after,.app-shell .tv-grid>.h.h-last:after{top:-1px;right:-1px;bottom:0;left:0}.app-shell .grid>.row:last-of-type>.c.c-first,.app-shell .tv-grid>.row:last-of-type>.c.c-first{border-bottom-left-radius:10px}.app-shell .grid>.row:last-of-type>.c.c-last,.app-shell .tv-grid>.row:last-of-type>.c.c-last{border-bottom-right-radius:10px}.app-shell section[data-screen=facturation] .tv-gridwrap{padding:18px 24px 24px}.app-shell .dash{max-width:none;padding:24px 24px 60px}.app-shell section[data-screen=batiments] .tab-toolbar{position:sticky;top:0;z-index:9;background:var(--paper)}.app-shell section[data-screen=batiments] .grid-gap{position:sticky;top:53px;z-index:5;height:18px;background:var(--paper)}.app-shell section[data-screen=batiments] .tblframe .grid .h{top:71px}.app-shell .ded-err{margin:0;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--warn)}.app-shell .ded-field.is-missing>label{color:var(--warn)}.app-shell .ded-field.is-missing input,.app-shell .ded-field.is-missing select,.app-shell .ded-field.is-missing .ssel-input,.app-shell .ded-lnrow.is-missing input,.app-shell .ded-lnrow.is-missing .ssel-input{border-color:var(--warn)}.app-shell .ded-lnrows.is-missing{outline:1px dashed var(--warn);outline-offset:4px;border-radius:4px}.app-shell .ded-hint{margin:0;align-self:center;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted)}.app-shell #dedGenPdf:disabled{opacity:.45;cursor:default}.app-shell #dedConvert:disabled{opacity:.45;cursor:default}.app-shell .ssel{position:relative;display:flex;flex-direction:column}.app-shell .ssel-input{padding:7px 9px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:var(--paper);color:var(--ink);font-family:inherit;width:100%}.app-shell .ssel-input:focus{border-color:var(--accent);outline:none}.app-shell .ssel-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--paper);border:1px solid var(--line-2);border-radius:6px;box-shadow:0 12px 28px -12px #0a0a0a47;padding:4px;display:flex;flex-direction:column;gap:1px;max-height:280px;overflow:auto}.app-shell .ssel-opt{display:flex;align-items:baseline;gap:10px;padding:6px 8px;border:none;border-radius:4px;background:transparent;color:var(--ink);font-family:inherit;font-size:12.5px;text-align:left;cursor:pointer;width:100%}.app-shell .ssel-opt.on{background:var(--accent-soft)}.app-shell .ssel-lab{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .ssel-hint{font-family:JetBrains Mono,monospace;font-size:9.5px;letter-spacing:.04em;color:var(--ink-3);flex:0 0 auto}.app-shell .ssel-free{border-top:1px solid var(--line);border-radius:0 0 4px 4px;margin-top:3px;padding-top:8px;color:var(--accent);font-size:11.5px;font-weight:500}.app-shell .dpk{position:relative;display:flex;align-items:stretch}.app-shell .dpk-input{flex:1;padding:7px 30px 7px 9px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:var(--paper);color:var(--ink);font-family:inherit;width:100%}.app-shell .dpk-input:focus{border-color:var(--accent);outline:none}.app-shell .dpk-btn{position:absolute;right:1px;top:1px;bottom:1px;width:28px;display:grid;place-items:center;border:none;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:0 5px 5px 0}.app-shell .dpk-btn:hover{color:var(--accent)}.app-shell .dpk-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:236px;background:var(--paper);border:1px solid var(--line-2);border-radius:6px;box-shadow:0 12px 28px -12px #0a0a0a47;padding:10px}.app-shell .dpk-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.app-shell .dpk-h b{font-size:12px;font-weight:600;text-transform:capitalize}.app-shell .dpk-h button{width:22px;height:22px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink-2);cursor:pointer;line-height:1;font-size:13px}.app-shell .dpk-h button:hover{border-color:var(--accent);color:var(--accent)}.app-shell .dpk-wk,.app-shell .dpk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.app-shell .dpk-wk{margin-bottom:4px}.app-shell .dpk-wk span{text-align:center;font-family:JetBrains Mono,monospace;font-size:8.5px;font-weight:700;letter-spacing:.05em;color:var(--ink-3)}.app-shell .dpk-day{aspect-ratio:1;border:none;border-radius:4px;background:transparent;color:var(--ink);font-family:JetBrains Mono,monospace;font-size:11px;cursor:pointer}.app-shell .dpk-day:hover{background:var(--accent-soft)}.app-shell .dpk-day.out{color:var(--ink-3);opacity:.55}.app-shell .dpk-day.now{box-shadow:inset 0 0 0 1px var(--line-2)}.app-shell .dpk-day.sel{background:var(--accent);color:#fff;font-weight:700}.app-shell .dpk-today{width:100%;margin-top:8px;padding:5px;border:1px dashed var(--line-2);border-radius:5px;background:transparent;color:var(--ink-2);font-family:inherit;font-size:11px;cursor:pointer}.app-shell .dpk-today:hover{border-color:var(--accent);color:var(--accent)}.app-shell .ssel-area{padding:6px 7px;border-radius:4px;font-size:12px;line-height:1.4;resize:none;overflow:hidden;min-height:28px;display:block}.app-shell #dedGenPdf:disabled{opacity:.55;cursor:progress}.app-shell .edhero-drop{position:absolute;top:7px;right:7px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:99px;background:#0a0a0a6b;color:#fff;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;letter-spacing:.04em;cursor:pointer;opacity:.55;transition:opacity .12s,background .12s}.app-shell .edhero-car:hover .edhero-drop{opacity:1}.app-shell .edhero-drop:hover{background:var(--accent)}.app-shell .edhero-car.plan .edhero-drop{background:var(--ink-2)}.app-shell .edhero-car.dropping{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.app-shell .edhero-car.dropping .edhero-img:after{content:"Déposer ici";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:Inter Tight,sans-serif;font-size:12px;font-weight:600;text-shadow:none}.app-shell .edhero-car.empty{cursor:copy}.app-shell .edhero-meta .edhero-hint{cursor:pointer}.app-shell .avsel{position:relative}.app-shell .avsel-field{display:flex;align-items:center;gap:8px;width:100%;padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);font-family:inherit;font-size:12.5px;cursor:pointer;min-height:34px}.app-shell .avsel-field:hover{border-color:var(--accent)}.app-shell .avsel-stack{display:flex;flex:1}.app-shell .avsel-stack .avsel-av{margin-right:-6px;box-shadow:0 0 0 2px var(--paper)}.app-shell .avsel-av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;color:#fff;font-family:JetBrains Mono,monospace;font-size:8.5px;font-weight:700;letter-spacing:.02em}.app-shell .avsel-av img{width:100%;height:100%;object-fit:cover}.app-shell .avsel-empty{flex:1;color:var(--ink-3);text-align:left}.app-shell .avsel-chev{color:var(--ink-3);font-size:11px}.app-shell .avsel-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--paper);border:1px solid var(--line-2);border-radius:6px;box-shadow:0 12px 28px -12px #0a0a0a47;padding:4px;display:flex;flex-direction:column;gap:1px}.app-shell .avsel-opt{display:flex;align-items:center;gap:9px;padding:5px 7px;border:none;border-radius:4px;background:transparent;color:var(--ink);font-family:inherit;font-size:12.5px;text-align:left;cursor:pointer}.app-shell .avsel-opt:hover{background:var(--paper-2)}.app-shell .avsel-opt.on{background:var(--accent-soft)}.app-shell .avsel-name{flex:1}.app-shell .avsel-check{color:var(--accent);font-weight:700;width:12px}.app-shell .edhero-car.plan .edhero-img{text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 6px #fff}.app-shell section[data-screen=facturation] .kv-filters{border-bottom:none}.app-shell section[data-screen=facturation] .kv-board{gap:12px;background:transparent;padding-top:4px;grid-template-columns:repeat(var(--kv-cols, 5),minmax(0,1fr))}.app-shell section[data-screen=facturation] .kv-col{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:none}[data-theme=dark] .app-shell section[data-screen=facturation] .kv-col,[data-theme=dark] .app-shell section[data-screen=facturation] .kv-card{background:var(--paper-3)}.app-shell section[data-screen=facturation] .kv-card{cursor:pointer}.app-shell .set-drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a59;opacity:0;pointer-events:none;transition:opacity .16s;z-index:80}.app-shell .set-drawer-bg.on{opacity:1;pointer-events:auto}.app-shell .set-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:var(--paper);border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translate(100%);transition:transform .18s ease;z-index:81}.app-shell .set-drawer.on{transform:none}.app-shell .set-drawer-h{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-md);padding:14px 18px;border-bottom:1px solid var(--line)}.app-shell .set-drawer-h b{font-size:13px}.app-shell .set-drawer-h .x{margin-left:auto;cursor:pointer;color:var(--ink-3);padding:2px 6px}.app-shell .set-drawer-h .x:hover{color:var(--ink)}.app-shell .set-drawer-b{flex:1;overflow-y:auto;padding:18px;min-height:0}.app-shell .set-drawer-empty{font-size:12px;line-height:1.55;color:var(--ink-3);margin:0}.app-shell .sf-lead{font-size:12px;line-height:1.55;color:var(--ink-3);margin:0 0 18px}.app-shell .sf-block{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px;background:#fff}[data-theme=dark] .app-shell .sf-block{background:var(--paper-3)}.app-shell .sf-block-h{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:12px}.app-shell .sf-block-h b{font-size:12.5px}.app-shell .sf-preview{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:3px 8px}.app-shell .sf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.app-shell .sf-field{display:flex;flex-direction:column;gap:5px;min-width:0}.app-shell .sf-lab{font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.app-shell .sf-field input,.app-shell .sf-field select{border:1px solid var(--line);border-radius:5px;padding:7px 9px;font:inherit;font-size:12px;background:var(--paper);color:var(--ink);min-width:0}.app-shell .sf-field input:focus,.app-shell .sf-field select:focus{outline:none;border-color:var(--accent)}.app-shell .sf-hint{font-size:10px;color:var(--ink-3);line-height:1.35}.app-shell .sf-check{display:flex;align-items:center;gap:7px;font-size:12px;padding:3px 0;cursor:pointer}.app-shell .sf-foot{display:flex;align-items:center;gap:var(--space-sm);padding-top:14px;border-top:1px solid var(--line)}.app-shell .sf-foot .sp{flex:1}.app-shell .sf-foot .btn:disabled{opacity:.45;cursor:not-allowed}.app-shell .tv-grid .c .ck{width:14px;height:14px;border:1.5px solid var(--ink-3);border-radius:3px;position:relative;cursor:pointer;flex:0 0 14px}.app-shell .tv-grid .c .ck.on{background:var(--accent);border-color:var(--accent)}.app-shell .tv-grid .c .ck.on:after{content:"";position:absolute;left:3px;top:.5px;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.app-shell .ded-preview{scrollbar-gutter:stable both-edges}.app-shell .ded-preview .dpdf-pages{display:flex;flex-direction:column;align-items:center;gap:24px;height:100%;width:100%}.app-shell .ded-preview .dpdf-sheet{height:100%;width:auto;max-width:100%;aspect-ratio:1 / 1.414;min-height:0;flex:0 0 auto;overflow:hidden;position:relative}.app-shell .ded-preview .dpdf-foot{position:absolute;right:6.67%;bottom:5px;margin:0;text-align:right;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.08em;color:#777}.app-shell .ded-preview .dpdf-sheet{padding:8.57% 6.67% 0}.app-shell .ded-preview .dpdf-head{padding-bottom:0;border-bottom:0;margin-bottom:22px}.app-shell #dedPanel{left:auto;width:min(1340px,calc(100vw - var(--side-w)))}.app-shell .app.side-collapsed #dedPanel{left:auto;width:min(1340px,calc(100vw - var(--side-w-collapsed)))}.app-shell section[data-screen=facturation] .kv-card{cursor:grab}.app-shell section[data-screen=facturation] .kv-card:active{cursor:grabbing}.app-shell section[data-screen=facturation] .kv-card.kv-dragging{opacity:.4}.app-shell section[data-screen=facturation] .kv-col.kv-target{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.app-shell section[data-screen=facturation] .kv-col.kv-target .kv-col-h{background:var(--accent-soft)}.app-shell section[data-screen=facturation] .kv-col.kv-refuse{opacity:.45}.app-shell .sf-note{font-size:11px;line-height:1.45;margin:8px 0 0;color:var(--ink-3);font-family:JetBrains Mono,monospace}.app-shell .sf-preview.sf-iban-bon,.app-shell .sf-note.sf-iban-bon{color:var(--ok, #0a7a52);background:var(--ok-soft, #dcf3e8)}.app-shell .sf-note.sf-iban-bon{background:none}.app-shell .sf-preview.sf-iban-faux,.app-shell .sf-note.sf-iban-faux{color:var(--warn);background:#c4502a1a}.app-shell .sf-note.sf-iban-faux{background:none}.app-shell .sf-preview.sf-iban-vide{color:var(--ink-3);background:var(--paper-2)}.app-shell .dpdf-to{margin:4px 0 22px auto;width:42%;text-align:right;font-size:12px;line-height:1.45}.app-shell .qrb-slot{margin:auto -7.7% 0;padding:0 7.7%;box-sizing:border-box;flex:0 0 auto;display:flex;flex-direction:column}.app-shell .qrb{display:grid;grid-template-columns:26.4% 1fr;border-top:1px dashed #999;padding:10px 0 14px;gap:12px;font-family:Helvetica Neue,Arial,sans-serif;color:#000}.app-shell .qrb-receipt{border-right:1px dashed #999;padding-right:10px;display:flex;flex-direction:column}.app-shell .qrb-title{font-size:10px;font-weight:700;margin-bottom:6px}.app-shell .qrb-grp{display:block}.app-shell .qrb-sect{font-size:6.5px;font-weight:700;margin:0 0 1px}.app-shell .qrb-val{font-size:8px;line-height:1.25}.app-shell .qrb-blank{height:22px;border:.5px solid #000;margin-top:2px}.app-shell .qrb-receipt{justify-content:flex-start}.app-shell .qrb-receipt .qrb-grp+.qrb-grp,.app-shell .qrb-receipt .qrb-amount{margin-top:10px}.app-shell .qrb-amount,.app-shell .qrb-pay-amount{display:flex;gap:14px;padding-top:8px}.app-shell .qrb-accept{margin-top:6px;text-align:right;font-size:6.5px;font-weight:700}.app-shell .qrb-payment{display:flex;flex-direction:column}.app-shell .qrb-pay-grid{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"qr info" "amount info";gap:6px 14px;flex:1}.app-shell .qrb-qr{grid-area:qr;align-self:start}.app-shell .qrb-pay-info{grid-area:info;display:flex;flex-direction:column;justify-content:flex-start;gap:10px}.app-shell .qrb-payment .qrb-sect{font-size:8px}.app-shell .qrb-payment .qrb-val{font-size:10px;line-height:1.3}.app-shell .qrb-pay-amount{grid-area:amount;align-self:start;margin-top:0}.app-shell .qrb-code{display:block}.app-shell .qrb-missing{width:120px;display:flex;flex-direction:column;gap:4px;border:1px dashed var(--warn);border-radius:4px;padding:8px;font-size:8px;line-height:1.35;color:var(--warn)}.app-shell .qrb-missing .qrb-where{color:#777}.app-shell .ded-preview .dpdf-sheet{display:flex;flex-direction:column}.app-shell .fpresta{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .ded-lnhead,.app-shell .ded-lnrow{grid-template-columns:1fr 52px 92px 84px 24px}.app-shell section[data-screen=facturation] .kv-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 8px;border:1px dashed var(--line-2);border-radius:5px;background:transparent;color:var(--ink-3);font-family:inherit;font-size:11px;cursor:pointer;margin-top:auto;flex:0 0 auto}.app-shell section[data-screen=facturation] .kv-add span{font-size:13px;line-height:1}.app-shell section[data-screen=facturation] .kv-add:hover{border-color:var(--accent);border-style:solid;color:var(--accent);background:var(--accent-soft)}.app-shell section[data-screen=facturation] .kv-filters .tv-newbtn{margin-left:10px}
