:root{--paper-0:#FAF8F3;--paper-1:#FFFFFF;--paper-2:#F4F1EA;--paper-3:#EDE9DD;--ink-0:#15140F;--ink-1:#2C2A23;--ink-2:#4A4740;--ink-3:#75716A;--ink-4:#A29D93;--ink-5:#C9C4B8;--line-0:#E7E2D5;--line-1:#EFEBDF;--line-2:#F5F1E5;--accent:#1F4E4A;--accent-1:#2A6863;--accent-2:#9CBAB6;--accent-3:#DCE9E7;--copper:#B07434;--copper-1:#9A6429;--copper-2:#F3E5D2;--ok:#3B6F2C;--ok-2:#E2EBD8;--warn:#A0691B;--warn-2:#F3E2C6;--err:#9A3F36;--err-2:#F0D5D1;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Display","Segoe UI","Inter",system-ui,Helvetica,Arial,sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;--font-mono:ui-monospace,"SF Mono","Berkeley Mono",Menlo,Consolas,monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--sidebar-w:248px;--main-pad:40px;--content-w:1040px;--r-sm:6px;--r:10px;--r-lg:14px;--sh-sm:0 1px 0 rgba(21,20,15,.04);--sh:0 1px 2px rgba(21,20,15,.05), 0 6px 16px rgba(21,20,15,.04);--sh-pop:0 4px 8px rgba(21,20,15,.06), 0 16px 40px rgba(21,20,15,.08);--ease:cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--ink-2);background:var(--paper-0);line-height:1.55;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11","ss01";text-rendering:optimizeLegibility}::selection{background:var(--accent-3);color:var(--ink-0)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}h1,h2,h3,h4{color:var(--ink-0);font-weight:600;letter-spacing:-.01em;margin:0}h1{font-family:var(--font-serif);font-size:34px;line-height:1.12;letter-spacing:-.018em;font-weight:600}h2{font-family:var(--font-serif);font-size:22px;line-height:1.2;letter-spacing:-.012em}h3{font-family:var(--font-sans);font-size:15px;line-height:1.35;letter-spacing:-.002em}p{margin:0}a{color:var(--ink-0);text-decoration:none}a:hover{color:var(--accent)}small{font-size:12.5px;color:var(--ink-3)}code,pre{font-family:var(--font-mono)}.lead{color:var(--ink-3);font-size:16px;max-width:62ch;line-height:1.55}.kicker{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--paper-2);border-right:1px solid var(--line-0);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}.side-brand{padding:18px 18px 14px;border-bottom:1px solid var(--line-1);display:flex;align-items:center;gap:11px}.side-brand img{height:22px;width:auto;display:block}.side-brand .div{width:1px;height:18px;background:var(--line-0)}.side-brand .sub{font-size:12.5px;color:var(--ink-3);font-weight:500;letter-spacing:.01em}.side-search{margin:14px 12px 8px;padding:7px 11px;display:flex;align-items:center;gap:8px;background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r-sm);cursor:pointer;font-size:13px;color:var(--ink-3);transition:border-color .14s var(--ease)}.side-search:hover{border-color:var(--ink-5);color:var(--ink-2)}.side-search .lens{width:14px;height:14px;flex-shrink:0}.side-search .label{flex:1}.side-search .kbd{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);background:var(--paper-2);padding:1px 6px;border-radius:4px;border:1px solid var(--line-0)}.side-nav{padding:6px 8px 12px;overflow-y:auto;flex:1}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-thumb{background:var(--ink-5);border-radius:3px}.nav-section{padding:14px 10px 4px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--ink-4);letter-spacing:.12em;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;margin:1px 0;font-size:14px;color:var(--ink-2);font-weight:500;border-radius:var(--r-sm);position:relative;transition:color .12s var(--ease),background .12s var(--ease)}.nav-item:hover{color:var(--ink-0);background:var(--paper-1)}.nav-item .ico{width:16px;height:16px;color:var(--ink-3);flex-shrink:0}.nav-item:hover .ico{color:var(--ink-1)}.nav-item.active{color:var(--ink-0);background:var(--paper-1);box-shadow:inset 2px 0 0 var(--accent)}.nav-item.active .ico{color:var(--accent)}.nav-item .ext{margin-left:auto;font-size:10.5px;color:var(--ink-4)}.side-foot{border-top:1px solid var(--line-1);padding:12px;display:flex;align-items:center;gap:10px}.side-foot .av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--font-serif);font-size:12px;font-weight:600;flex-shrink:0}.side-foot .who{flex:1;min-width:0}.side-foot .nm{font-size:13.5px;font-weight:600;color:var(--ink-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-foot .em{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-foot .badge-dev{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--copper-1);background:var(--copper-2);padding:2px 6px;border-radius:4px}.main{min-width:0;padding:var(--main-pad)}.main-inner{max-width:var(--content-w);margin:0 auto}.main-wide{max-width:none;margin:0;padding-right:0;padding-left:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px;padding-bottom:18px;border-bottom:1px solid var(--line-0)}.page-head .pre{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.page-head h1{margin-bottom:6px}.page-head .desc{color:var(--ink-3);font-size:14.5px;max-width:60ch}.page-head .actions{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-sans);font-size:13.5px;font-weight:600;background:var(--paper-1);border:1px solid var(--line-0);color:var(--ink-1);transition:border-color .12s var(--ease),color .12s var(--ease),background .12s var(--ease)}.btn:hover{border-color:var(--ink-4);color:var(--ink-0)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-1);border-color:var(--accent-1);color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--paper-2);border-color:var(--paper-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:5px 10px;font-size:12.5px}.input,.select,.textarea{width:100%;background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r-sm);padding:9px 11px;font-size:14px;color:var(--ink-0);font-family:var(--font-sans);outline:none;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-3)}.textarea{resize:vertical;line-height:1.55}.field-label{display:block;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.surface{background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r)}.surface-pad{padding:20px 22px}.section{margin-top:36px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.section-head h2{font-size:18px;font-family:var(--font-sans);font-weight:600;letter-spacing:-.005em;color:var(--ink-0)}.section-head .more{font-size:13px;color:var(--ink-3);font-weight:500}.section-head .more:hover{color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line-0)}.tag-accent{background:var(--accent-3);color:var(--accent);border-color:transparent}.tag-copper{background:var(--copper-2);color:var(--copper-1);border-color:transparent}.tag-ok{background:var(--ok-2);color:var(--ok);border-color:transparent}.tag-warn{background:var(--warn-2);color:var(--warn);border-color:transparent}.t{width:100%;border-collapse:collapse;font-size:13.5px}.t th{text-align:left;padding:10px 12px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line-0);background:var(--paper-2)}.t td{padding:11px 12px;border-bottom:1px solid var(--line-1);color:var(--ink-1)}.t tr:last-child td{border-bottom:none}.t tr:hover td{background:var(--paper-2)}.t .num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.list-clean{list-style:none;padding:0;margin:0}.divider{height:1px;background:var(--line-0);margin:24px 0}.empty{padding:32px 0;border-top:1px solid var(--line-0);margin-top:14px;display:flex;align-items:flex-start;gap:16px}.empty .empty-mark{width:6px;height:36px;background:var(--line-0);border-radius:3px;flex-shrink:0}.empty .empty-body{color:var(--ink-3);font-size:14px;max-width:50ch;line-height:1.55}.empty .empty-body b{color:var(--ink-1);font-weight:600;display:block;margin-bottom:3px;font-size:14.5px}.ia{display:grid;gap:1px;background:var(--line-0);border:1px solid var(--line-0);border-radius:var(--r);overflow:hidden}.ia-row{background:var(--paper-1);padding:18px 22px;display:flex;align-items:flex-start;gap:18px}.ia-row .ia-mark{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);width:36px;flex-shrink:0;padding-top:1px}.ia-row .ia-body b{display:block;font-size:14.5px;color:var(--ink-0);font-weight:600;margin-bottom:2px}.ia-row .ia-body p{color:var(--ink-3);font-size:13.5px;line-height:1.55}.id-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r)}.id-av{width:42px;height:42px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--font-serif);font-size:15px;font-weight:600;flex-shrink:0}.id-name{font-weight:600;color:var(--ink-0);font-size:14.5px}.id-email{color:var(--ink-3);font-size:12.5px;margin-top:1px}.tile{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r-sm);transition:border-color .12s var(--ease)}.tile:hover{border-color:var(--ink-4)}.tile.disabled{opacity:.55;cursor:not-allowed}.tile .tile-ico{width:32px;height:32px;border-radius:var(--r-sm);background:var(--paper-2);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.tile .tile-main{flex:1;min-width:0}.tile .tile-title{font-weight:600;color:var(--ink-0);font-size:13.5px}.tile .tile-desc{color:var(--ink-3);font-size:12px;line-height:1.45;margin-top:1px}.tile .tile-arrow{color:var(--ink-4);font-family:var(--font-mono);font-size:14px}.tile:hover .tile-arrow{color:var(--accent)}.hlist{list-style:none;padding:0;margin:0}.hlist li{border-bottom:1px solid var(--line-1)}.hlist li:last-child{border-bottom:none}.hlist a{display:flex;align-items:center;justify-content:space-between;padding:11px 0;font-size:14px;color:var(--ink-1);transition:color .12s var(--ease)}.hlist a:hover{color:var(--accent)}.hlist a .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.hlist a .arr{color:var(--ink-4);font-family:var(--font-mono);font-size:13px;margin-left:8px}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}.cmd-overlay{position:fixed;inset:0;background:#15140f5c;backdrop-filter:blur(2px);z-index:80;display:none;align-items:flex-start;justify-content:center;padding-top:14vh}.cmd-overlay.open{display:flex}.cmd{width:600px;max-width:calc(100vw - 32px);background:var(--paper-1);border:1px solid var(--line-0);border-radius:var(--r-lg);box-shadow:var(--sh-pop);overflow:hidden}.cmd-input{width:100%;padding:16px 18px;font-size:16px;border:none;background:transparent;color:var(--ink-0);font-family:var(--font-sans);outline:none;border-bottom:1px solid var(--line-1)}.cmd-list{max-height:50vh;overflow-y:auto;padding:6px 0}.cmd-group-label{padding:10px 18px 4px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);letter-spacing:.1em;text-transform:uppercase}.cmd-item{display:flex;align-items:center;gap:12px;padding:9px 18px;cursor:pointer;font-size:14px;color:var(--ink-1)}.cmd-item .cmd-ico{width:18px;height:18px;color:var(--ink-3);flex-shrink:0}.cmd-item.active,.cmd-item:hover{background:var(--paper-2);color:var(--ink-0)}.cmd-item.active .cmd-ico,.cmd-item:hover .cmd-ico{color:var(--accent)}.cmd-item .cmd-meta{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}.cmd-foot{display:flex;gap:14px;padding:10px 18px;background:var(--paper-2);border-top:1px solid var(--line-1);font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}.cmd-foot kbd{background:var(--paper-1);border:1px solid var(--line-0);border-radius:3px;padding:1px 5px;font-family:var(--font-mono);font-size:10px}.cmd-empty{padding:30px 18px;text-align:center;color:var(--ink-3);font-size:13px}.mtop,.side-close,.side-backdrop{display:none}.side-lang{display:flex;gap:3px;padding:6px 10px 8px;border-top:1px solid var(--line-1);justify-content:flex-start}.lang-btn{background:transparent;border:1px solid transparent;color:var(--ink-3);padding:5px 9px;border-radius:5px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;cursor:pointer;transition:all .12s var(--ease)}.lang-btn:hover{color:var(--ink-0);background:var(--paper-1);border-color:var(--line-0)}.lang-btn.active{background:var(--ink-0);border-color:var(--ink-0);color:var(--paper-1)}.side-foot .foot-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.signout{width:28px;height:28px;display:grid;place-items:center;border-radius:5px;color:var(--ink-3);transition:all .12s var(--ease)}.signout:hover{color:var(--err);background:var(--paper-1)}@media (max-width:880px){.mtop{display:flex;align-items:center;justify-content:space-between;background:var(--paper-1);border-bottom:1px solid var(--line-0);padding:10px 14px;gap:10px;position:sticky;top:0;z-index:40;padding-top:max(10px,env(safe-area-inset-top))}.mtop-burger,.mtop-cmd{width:40px;height:40px;display:grid;place-items:center;background:transparent;border:1px solid var(--line-0);border-radius:var(--r-sm);color:var(--ink-1);cursor:pointer;font-size:18px}.mtop-burger:hover,.mtop-cmd:hover{background:var(--paper-2)}.mtop-brand{display:flex;align-items:center}.mtop-brand img{height:22px;width:auto}.app{grid-template-columns:1fr;display:block}.sidebar{position:fixed;top:0;left:-280px;bottom:0;width:272px;height:100vh;max-width:85vw;z-index:60;transition:left .22s var(--ease);box-shadow:0 0 0 transparent;padding-top:env(safe-area-inset-top)}.sidebar.open{left:0;box-shadow:0 0 40px #15140f38}.side-backdrop{display:block;position:fixed;inset:0;background:#15140f4d;z-index:55;opacity:0;pointer-events:none;transition:opacity .22s var(--ease)}.side-backdrop.open{opacity:1;pointer-events:auto}.side-close{display:grid;place-items:center;margin-left:auto;width:30px;height:30px;border-radius:5px;background:transparent;border:none;color:var(--ink-3);cursor:pointer;font-size:18px}.side-close:hover{color:var(--ink-0);background:var(--paper-1)}.side-brand{padding-right:8px}.main{padding:24px 18px 64px}h1{font-size:26px}h1#greet{font-size:30px}.home-grid{grid-template-columns:1fr;gap:28px}.page-head{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:24px;padding-bottom:16px}.page-head .actions{width:100%}.page-head .actions .btn{width:100%;justify-content:center}.tpl-filters .input{min-width:0;width:100%}.chips{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.chip{flex-shrink:0}.tool-row,.odoo-row{flex-wrap:nowrap;gap:12px;padding:14px 0}.tool-row-side .meta-path,.odoo-row .meta-path{display:none}.tpl-rows li{flex-wrap:wrap}.row-actions{width:100%;padding-top:4px}.row-meta{font-size:11px;gap:8px}.cmd{width:calc(100vw - 24px);margin:0 12px}.up-grid{grid-template-columns:1fr}}@media (max-width:480px){.main{padding:20px 16px 60px}h1{font-size:24px;line-height:1.15}h1#greet{font-size:26px}.page-head h1{font-size:24px}.id-row{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
