/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans Thai", "Leelawadee UI", "Tahoma", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--spacing:.25rem;--font-weight-semibold:600;--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#12161c;--color-surface:#1a2028;--color-surface-2:#222a34;--color-surface-3:#2a3441;--color-line:#303c49;--color-line-soft:#28323d;--color-text:#e7edf3;--color-text-dim:#93a2b3;--color-text-faint:#657282;--color-accent:#2563eb;--color-accent-strong:#f05252;--color-accent-dim:#3a2e20;--color-teal:#3fb6ad;--color-teal-dim:#1e332f;--color-good:#5bbd7a;--color-warn:#e6b04a;--color-danger:#e0705f;--color-info:#5aa0e0;--font-doc:"Sarabun", "TH Sarabun New", "Leelawadee UI", sans-serif;--radius-r:10px;--radius-r-sm:7px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded-r{border-radius:var(--radius-r)}.rounded-r-sm{border-radius:var(--radius-r-sm)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-sm{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-line{border-color:var(--color-line)}.border-line-soft{border-color:var(--color-line-soft)}.bg-bg{background-color:var(--color-bg)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.p-8{padding:calc(var(--spacing) * 8)}.font-doc{font-family:var(--font-doc)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-good{color:var(--color-good)}.text-info{color:var(--color-info)}.text-teal{color:var(--color-teal)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.opacity-40{opacity:.4}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:var(--color-bg);--surface:var(--color-surface);--surface-2:var(--color-surface-2);--surface-3:var(--color-surface-3);--line:var(--color-line);--line-soft:var(--color-line-soft);--text:var(--color-text);--text-dim:var(--color-text-dim);--text-faint:var(--color-text-faint);--accent:var(--color-accent);--accent-strong:var(--color-accent-strong);--accent-dim:var(--color-accent-dim);--teal:var(--color-teal);--teal-dim:var(--color-teal-dim);--good:var(--color-good);--warn:var(--color-warn);--danger:var(--color-danger);--info:var(--color-info);--mono:var(--font-mono);--sans:var(--font-sans);--r:var(--radius-r);--r-sm:var(--radius-r-sm);--board-h: calc(100dvh - 200px) ;--pad-view:24px;--pad-card:18px;--gap:16px}:root[data-theme=light]{--bg:#f3f5f8;--surface:#fff;--surface-2:#eef1f5;--surface-3:#e0e6ee;--line:#d2dae4;--line-soft:#e5eaf1;--text:#111820;--text-dim:#54606f;--text-faint:#7b8797;--accent-strong:#bc4140}@supports (color:color-mix(in lab,red,red)){:root[data-theme=light]{--accent-strong:color-mix(in srgb, var(--color-accent-strong) 76%, #180a08)}}:root[data-theme=light]{--good:#1e7a45;--warn:#96690b;--danger:#b8402f;--info:#1f66ad;--teal:#0f766e}:root[data-theme=light] .pill:not(.pill-accent){filter:brightness(.62)saturate(1.1)}:root[data-theme=light] .modal{box-shadow:0 24px 60px #141e2d38,0 0 0 1px #0000000d}:root[data-theme=light] .modal-bg{background:#1822307a}:root[data-theme=light] .bell-panel{box-shadow:0 18px 44px #141e2d33}:root[data-theme=light] .drag-ghost{box-shadow:0 16px 40px #141e2d47}:root[data-theme=light] .nav-scrim{background:#1c263461}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}::selection{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}}::selection{color:var(--text)}body{font-family:var(--sans);background:radial-gradient(circle at 50% 0%,var(--accent) 0%,transparent 55%),var(--bg)}@supports (color:color-mix(in lab,red,red)){body{background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--accent) 5%,transparent) 0%,transparent 55%),var(--bg)}}body{color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:var(--surface-3)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--surface-3) 85%,var(--line))}}::-webkit-scrollbar-thumb{border-radius:8px;transition:background .15s}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 50%,var(--surface-3))}}::-webkit-scrollbar-track{background:0 0}#app{height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-shrink:0;width:230px}@supports (color:color-mix(in lab,red,red)){.sidebar{border-right:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.sidebar{z-index:20;flex-direction:column;padding:18px 12px;display:flex}.brand{align-items:center;gap:10px;padding:6px 8px 16px;display:flex}.brand .mark{font-family:var(--mono);letter-spacing:2px;background:linear-gradient(135deg,var(--accent),var(--teal));-webkit-text-fill-color:transparent;border:1.5px solid var(--accent);-webkit-background-clip:text;background-clip:text;font-size:19px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.brand .mark{border:1.5px solid color-mix(in srgb,var(--accent) 40%,var(--line))}}.brand .mark{box-shadow:0 0 12px var(--accent);border-radius:8px;padding:5px 9px}@supports (color:color-mix(in lab,red,red)){.brand .mark{box-shadow:0 0 12px color-mix(in srgb,var(--accent) 15%,transparent)}}.brand .mark{transition:transform .2s,border-color .2s}.brand .mark:hover{border-color:var(--accent);transform:scale(1.03)}.brand .sub{color:var(--text-faint);letter-spacing:.5px;text-transform:uppercase;font-size:11px}.nav{flex-direction:column;gap:3px;margin-top:6px;display:flex}.nav button{text-align:left;width:100%;color:var(--text-dim);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:11px;padding:9px 11px;font-size:14px;transition:all .16s cubic-bezier(.16,1,.3,1);display:flex}.nav button:hover{background:var(--surface-2);color:var(--text);transform:translate(3px)}.nav button.active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.nav button.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))}}.nav button.active{color:var(--text);box-shadow:inset 3px 0 0 var(--accent),0 2px 10px var(--accent)}@supports (color:color-mix(in lab,red,red)){.nav button.active{box-shadow:inset 3px 0 0 var(--accent),0 2px 10px color-mix(in srgb,var(--accent) 15%,transparent)}}.nav button.active{font-weight:500}.nav button .ico{opacity:.85;flex-shrink:0;width:17px;height:17px;transition:opacity .15s,transform .15s}.nav button:hover .ico{opacity:1;transform:scale(1.08)}.nav .badge{background:var(--surface-3);color:var(--text-dim);font-size:11px;font-family:var(--mono);text-align:center;border-radius:20px;min-width:20px;margin-left:auto;padding:1px 7px}.nav .navitem{flex-direction:column;display:flex}.nav .subnav{border-left:1px solid var(--line);flex-direction:column;gap:1px;margin:3px 0 5px 20px;padding-left:11px;display:flex}.nav .subnav button{color:var(--text-faint);border-radius:var(--r-sm);padding:7px 10px;font-size:13px;transition:all .14s;position:relative}.nav .subnav button:hover{background:var(--surface-2);color:var(--text-dim);transform:translate(2px)}.nav .subnav button.active{background:var(--surface-2);color:var(--text);box-shadow:none;font-weight:500}.nav .subnav button.active:before{content:"";background:var(--accent);width:5px;height:5px;box-shadow:0 0 6px var(--accent);border-radius:50%;margin-top:-2.5px;position:absolute;top:50%;left:-12px}.sidebar-foot{border-top:1px solid var(--line-soft);flex-direction:column;gap:6px;margin-top:auto;padding-top:12px;display:flex}.credit-link{text-align:left;color:var(--text-faint);text-underline-offset:2px;background:0 0;border:0;padding:4px 2px;font-size:11px;text-decoration:underline;transition:color .15s}.credit-link:hover{color:var(--text-dim)}.credit-name{color:var(--text);font-size:15px;font-weight:600}.credit-role{color:var(--text-dim);margin-top:2px;font-size:12px}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);flex-shrink:0;height:58px}@supports (color:color-mix(in lab,red,red)){.topbar{border-bottom:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.topbar{background:var(--surface);align-items:center;gap:14px;padding:0 22px;display:flex}@supports (color:color-mix(in lab,red,red)){.topbar{background:color-mix(in srgb,var(--surface) 88%,transparent)}}.topbar{-webkit-backdrop-filter:blur(12px);z-index:30}.topbar h1{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.topbar .spacer{flex:1}.view{padding:var(--pad-view);flex:1;overflow-y:auto}.view-inner{max-width:1180px;margin:0 auto}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:500;transition:all .16s ease-out;display:inline-flex}.btn:hover{background:var(--surface-3);border-color:var(--line)}@supports (color:color-mix(in lab,red,red)){.btn:hover{border-color:color-mix(in srgb,var(--line) 80%,var(--text-faint))}}.btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px #00000026}.btn:active{transform:translateY(0)}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.btn.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 85%,#000))}}.btn.primary{color:#fff;border-color:var(--accent);box-shadow:0 2px 8px var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn.primary{box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent)}}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 5px 15px var(--accent-strong)}@supports (color:color-mix(in lab,red,red)){.btn.primary:hover{box-shadow:0 5px 15px color-mix(in srgb,var(--accent-strong) 40%,transparent)}}.btn.ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text);box-shadow:none}.btn.sm{padding:5px 10px;font-size:12.5px}.btn.danger{color:var(--danger);border-color:#0000}.btn.danger:hover{box-shadow:none;background:#e0705f24}.icobtn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-dim);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.icobtn:hover{background:var(--surface-2);color:var(--text);transform:scale(1.05)}.card{background:var(--surface);border:1px solid var(--line)}@supports (color:color-mix(in lab,red,red)){.card{border:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.card{border-radius:var(--r);padding:var(--pad-card);transition:transform .2s,box-shadow .2s,border-color .2s;box-shadow:0 4px 20px -2px #00000038}.card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.card:hover{border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}}.card:hover{box-shadow:0 8px 26px -4px #00000047}.grid{gap:var(--gap);display:grid}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}}.section-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-head h2{font-size:15px;font-weight:600}.section-head .spacer{flex:1}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.mono{font-family:var(--mono)}.right{text-align:right}.nowrap{white-space:nowrap}.stat{padding:16px 18px}.msum{grid-template-columns:minmax(200px,260px) 1fr;align-items:start;gap:24px;display:grid}.msum-money .num{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tbar{margin-bottom:11px}.tbar:last-child{margin-bottom:0}.tbar-top{justify-content:space-between;gap:12px;margin-bottom:4px;font-size:12.5px;display:flex}.tbar-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tbar-val{color:var(--text-dim);font-family:var(--mono);flex-shrink:0;font-size:11.5px}.tbar-track{background:var(--surface-3);border-radius:4px;height:6px;overflow:hidden}.tbar-fill{background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:4px;height:100%}@media(max-width:700px){.msum{grid-template-columns:1fr;gap:18px}}.stat .label{color:var(--text-dim);letter-spacing:.3px;font-size:12px}.stat .num{font-size:26px;font-weight:600;font-family:var(--mono);margin-top:4px}.stat .num.money{color:var(--accent-strong)}.stat .sub{color:var(--text-faint);margin-top:2px;font-size:12px}table{border-collapse:collapse;width:100%}.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-faint);border-bottom:1px solid var(--line);padding:8px 12px;font-size:11.5px;font-weight:500}.tbl td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:11px 12px}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:all .1s}.tbl tbody tr:hover{background:var(--surface-2)}.clickrow{cursor:pointer}.tbl .num-c{font-family:var(--mono);text-align:right;white-space:nowrap}.pill{white-space:nowrap;letter-spacing:.2px;border-radius:20px;align-items:center;gap:6px;padding:3.5px 10px;font-size:12px;font-weight:500;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 6px}.pill-accent{color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.pill-accent{background:color-mix(in srgb,var(--accent) 14%,transparent)}}.pill-accent{border:1px solid var(--accent)}@supports (color:color-mix(in lab,red,red)){.pill-accent{border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}}.tag{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--line-soft);border-radius:6px;padding:2.5px 9px;font-size:11.5px}@supports (color:color-mix(in lab,red,red)){.tag{border:1px solid color-mix(in srgb,var(--line-soft) 80%,transparent)}}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-dim);font-size:12.5px;font-weight:500}.field .hint{color:var(--text-faint);font-size:11.5px}.inp,select.inp,textarea.inp{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:var(--r-sm);outline:none;width:100%;padding:9px 11px;transition:border-color .15s,box-shadow .15s,transform .15s}.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3.5px var(--accent)}@supports (color:color-mix(in lab,red,red)){.inp:focus{box-shadow:0 0 0 3.5px color-mix(in srgb,var(--accent) 24%,transparent)}}textarea.inp{resize:vertical;min-height:70px}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:190px}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.toggle input{display:none}.toggle .track{background:var(--surface-3);border-radius:20px;flex-shrink:0;width:38px;height:22px;transition:all .15s;position:relative}.toggle .track:after{content:"";background:var(--text-dim);border-radius:50%;width:18px;height:18px;transition:all .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.track{background:var(--accent)}.toggle input:checked+.track:after{background:#fff;transform:translate(16px)}.seg{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg button{color:var(--text-dim);border-radius:calc(var(--r-sm) - 2px);white-space:nowrap;background:0 0;border:0;padding:6px 13px;font-size:13px;transition:all .12s}.seg button:hover{color:var(--text)}.seg button.active{background:var(--accent);color:#fff}.tone-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px;display:grid}.tone{text-align:left;background:var(--bg);border:1px solid var(--line);color:var(--text-dim);border-radius:var(--r-sm);align-items:center;gap:10px;padding:9px 11px;font-size:13px;transition:all .12s;display:flex}.tone:hover{border-color:var(--text-faint);color:var(--text)}.tone.active{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.tone.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 26%,transparent)}}.tone .sw{border:1px solid var(--line);border-radius:20px;flex-shrink:0;width:26px;height:16px;display:inline-flex;overflow:hidden}.tone .sw i{flex:1}.color-inp{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;width:46px;height:32px;padding:2px}.theme-preview{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);flex-wrap:wrap;align-items:center;gap:12px;padding:14px;display:flex}.modal-bg{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#06090db8;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto}.modal{background:var(--surface)}@supports (color:color-mix(in lab,red,red)){.modal{background:color-mix(in srgb,var(--surface) 95%,transparent)}}.modal{border:1px solid var(--line)}@supports (color:color-mix(in lab,red,red)){.modal{border:1px solid color-mix(in srgb,var(--line) 90%,transparent)}}.modal{border-radius:14px;width:100%;max-width:640px;animation:.18s cubic-bezier(.16,1,.3,1) pop;box-shadow:0 24px 60px -10px #0009,0 0 0 1px #ffffff0d}.modal.wide{max-width:920px}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--line);align-items:center;padding:18px 22px;display:flex}.modal-head h3{font-size:16px;font-weight:600}.modal-head .spacer{flex:1}.modal-body{max-height:65vh;padding:22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.empty{text-align:center;color:var(--text-faint);padding:54px 20px}.empty .big{color:var(--text-dim);margin-bottom:6px;font-size:15px}.board{gap:14px;padding-bottom:8px;display:flex;overflow-x:auto}.jobcard{touch-action:pan-x}.jobcard.dragging{opacity:.3}.drag-ghost{z-index:400;pointer-events:none;width:var(--gw);cursor:grabbing;position:fixed;transform:rotate(1.5deg);box-shadow:0 16px 40px #0000008c;border-color:var(--accent)!important}.col.drop-target{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--r)}.col.drop-target .col-body{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.col.drop-target .col-body{background:color-mix(in srgb,var(--accent) 8%,transparent)}}body.dragging-card{cursor:grabbing;-webkit-user-select:none;user-select:none}body.dragging-card .jobcard{cursor:grabbing}.col{background:var(--surface);border:1px solid var(--line);flex:1;min-width:235px}@supports (color:color-mix(in lab,red,red)){.col{border:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.col{border-radius:var(--r);max-height:calc(100vh - 200px);max-height:var(--board-h);flex-direction:column;display:flex;box-shadow:0 4px 16px -2px #00000029}.col-head{border-bottom:1px solid var(--line-soft);background:var(--surface);border-top-left-radius:var(--r);border-top-right-radius:var(--r);z-index:5;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:600;display:flex;position:sticky;top:0}.col-head .cnt{font-family:var(--mono);color:var(--text-faint);margin-left:auto;font-size:12px}.col-body{flex-direction:column;gap:8px;padding:8px;display:flex;overflow-y:auto}.jobcard{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);cursor:pointer;padding:12px;transition:all .18s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 6px #0000001f}@supports (color:color-mix(in lab,red,red)){.jobcard:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}}.jobcard:hover{background:var(--surface-3);transform:translateY(-2px);box-shadow:0 8px 22px -4px #00000047}.jobcard .jt{margin-bottom:4px;font-size:13.5px;font-weight:600;line-height:1.3}.jobcard .jm{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.jobcard .jcode{font-family:var(--mono);color:var(--text-faint);font-size:10.5px}.jobcard{border-left:3px solid #0000}.jobcard.p-high{border-left-color:var(--danger)}.jobcard.p-med{border-left-color:var(--info)}.jobcard.p-low{border-left-color:var(--line)}.jobcard.is-blocked{opacity:.62}.jobcard.is-blocked:hover{opacity:1}.jblock{color:var(--warn);align-items:center;gap:5px;margin-top:5px;font-size:11px;display:flex}.jblock .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.jdate{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;font-size:11px;display:flex}.jdate .due.soon{color:var(--warn)}.jdate .due.over{color:var(--danger);font-weight:600}.jsub{margin-top:6px}.jsub-top{color:var(--text-faint);justify-content:space-between;margin-bottom:3px;font-size:10.5px;display:flex}.jsub-track{background:var(--surface-3);border-radius:3px;height:3px;overflow:hidden}.jsub-fill{background:var(--teal);border-radius:3px;height:100%;transition:width .15s}.jsub-fill.done{background:var(--good)}.st-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;padding:6px 0;display:flex}.st-row:last-child{border-bottom:none}.pf-head-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.pf-print-btn{background:var(--surface-2);border:1px solid var(--line);color:var(--text-dim);border-radius:var(--r-sm);cursor:pointer;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s}.pf-print-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--accent)}.pf-pay-actions{align-items:center;gap:8px;display:flex}.pf-slip-main-btn{background:var(--accent);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;padding:5px 12px;font-size:12px;font-weight:500;transition:opacity .15s}.pf-slip-main-btn:hover{opacity:.9}.pf-tag.slip-btn{background:var(--surface-2);border:1px dashed var(--accent);color:var(--accent);cursor:pointer;transition:background .15s}.pf-tag.slip-btn:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.pf-tag.slip-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.pf-tag.slip-pending{background:var(--warn)}@supports (color:color-mix(in lab,red,red)){.pf-tag.slip-pending{background:color-mix(in srgb,var(--warn) 15%,transparent)}}.pf-tag.slip-pending{border:1px solid var(--warn);color:var(--warn);font-weight:500}.pf-stage-toggle{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:11px}.pf-stage-toggle:hover{color:var(--accent)}.pf-stage-breakdown{border-top:1px dashed var(--line-soft);gap:6px;margin-top:10px;padding-top:8px;display:flex;overflow-x:auto}.pf-stage-step-item{text-align:center;opacity:.45;flex-direction:column;flex:1;align-items:center;gap:4px;min-width:54px;display:flex}.pf-stage-step-item.done{opacity:.85}.pf-stage-step-item.current{opacity:1}.pf-stage-step-item .dot{background:var(--surface-3);width:20px;height:20px;color:var(--text-faint);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.pf-stage-step-item.done .dot{background:var(--good);color:#fff;border-color:var(--good)}.pf-stage-step-item.current .dot{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.pf-stage-step-item.current .dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}}.pf-stage-step-item .lbl{color:var(--text-dim);white-space:nowrap;font-size:10.5px}.pf-stage-step-item.current .lbl{color:var(--accent);font-weight:600}.pf-modal-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.pf-modal{color:#1a202c;background:#fff;border-radius:12px;width:100%;max-width:440px;overflow:hidden;box-shadow:0 20px 40px #00000040}.pf-modal-head{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pf-modal-title{color:#2d3748;font-size:16px;font-weight:600}.pf-modal-close{color:#a0aec0;cursor:pointer;background:0 0;border:none;font-size:16px}.pf-modal-close:hover{color:#4a5568}.pf-modal-body{flex-direction:column;gap:14px;padding:20px;display:flex}.pf-field{flex-direction:column;gap:6px;display:flex}.pf-lbl{color:#718096;font-size:12px;font-weight:500}.pf-val-txt{color:#2d3748;font-size:14px}.pf-val-txt.bold{color:#2b6cb0;font-size:18px;font-weight:700}.pf-file-inp{font-size:13px}.pf-preview{border:1px solid #e2e8f0;border-radius:6px;max-height:180px;margin-top:8px;overflow:hidden}.pf-preview img{object-fit:contain;background:#f7fafc;width:100%;max-height:180px}.pf-inp{border:1px solid #cbd5e0;border-radius:6px;outline:none;padding:8px 12px;font-size:13px}.pf-inp:focus{border-color:#3182ce;box-shadow:0 0 0 2px #3182ce33}.pf-err-msg{color:#e53e3e;background:#fff5f5;border:1px solid #feb2b2;border-radius:6px;padding:8px 12px;font-size:12px}.pf-modal-foot{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.pf-btn{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500}.pf-btn.sec{color:#4a5568;background:#edf2f7}.pf-btn.sec:hover{background:#e2e8f0}.pf-btn.prim{color:#fff;background:#3182ce}.pf-btn.prim:hover{background:#2b6cb0}.pf-btn:disabled{opacity:.6;cursor:not-allowed}@media print{body{background:#fff!important}.pf{background:0 0!important;padding:0!important}.pf-sheet{box-shadow:none!important;border:none!important;max-width:100%!important;padding:0!important}.pf-print-btn,.pf-copy-btn,.pf-slip-main-btn,.pf-slip-btn,.pf-modal-bg,.pf-stage-toggle{display:none!important}}.st-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--good);cursor:pointer;flex-shrink:0}.st-row .inp{flex:1;padding:6px 9px}.st-row.done .inp{color:var(--text-faint);text-decoration:line-through}.blk-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;padding:7px 0;font-size:13px;display:flex}.blk-row:last-child{border-bottom:none}.blk-row .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cal-grid{background:var(--line-soft);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;width:100%;margin-bottom:24px;display:grid;overflow:hidden;box-shadow:0 4px 20px #00000026}.cal-dow{background:var(--surface-2);text-align:center;color:var(--text-dim);letter-spacing:.5px;min-width:0;padding:10px 4px;font-size:12.5px;font-weight:600;overflow:hidden}.cal-day{background:var(--surface);flex-direction:column;min-width:0;min-height:95px;padding:6px;transition:background-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.cal-day:hover:not(.other){background:var(--surface-2);z-index:2}.cal-day.other{background:var(--bg);opacity:.4}.cal-day.today{box-shadow:inset 0 0 0 2px var(--accent);background:#2563eb0a}.cal-day .dn{font-family:var(--mono);color:var(--text-dim);text-align:center;border-radius:50%;width:24px;height:24px;margin-bottom:6px;font-size:12.5px;line-height:24px;transition:all .15s;display:inline-block}.cal-day.today .dn{background:var(--accent);color:#fff;font-weight:700;box-shadow:0 2px 8px #2563eb66}.cal-ev{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;box-sizing:border-box;border-radius:5px;align-items:center;gap:4px;min-width:0;max-width:100%;margin-bottom:4px;padding:3px 6px;font-size:11px;font-weight:500;transition:transform .12s,box-shadow .12s,filter .12s;display:flex;overflow:hidden}.cal-ev:hover{filter:brightness(1.1);transform:translateY(-1px)scale(1.01);box-shadow:0 3px 8px #00000040}.cal-ev:active{transform:translateY(0)scale(.99)}.cal-day-add{opacity:0;transition:opacity .15s,transform .15s;transform:scale(.8)}@keyframes calPopIn{0%{opacity:0;transform:scale(.93)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.cal-popover-card{animation:.2s cubic-bezier(.16,1,.3,1) forwards calPopIn}.li-table{border-collapse:collapse;width:100%;margin-top:6px}.li-table th{color:var(--text-faint);text-align:left;text-transform:uppercase;letter-spacing:.3px;padding:6px 8px;font-size:11px;font-weight:500}.li-table td{vertical-align:top;padding:4px 6px}.li-table .inp{padding:7px 9px}.li-table td.num .inp{text-align:right;font-family:var(--mono)}.totals{max-width:340px;margin-top:14px;margin-left:auto}.totals .tr{justify-content:space-between;padding:5px 0;font-size:13.5px;display:flex}.totals .tr.grand{border-top:1px solid var(--line);margin-top:5px;padding-top:9px;font-size:16px;font-weight:600}.totals .tr .v{font-family:var(--mono)}.totals .tr.net{color:var(--accent-strong);font-weight:600}#print-root{display:none}@media print{@page{size:A4;margin:14mm}body{background:#fff}#app,.modal-bg{display:none!important}#print-root{color:#111;font-family:Sarabun,TH Sarabun New,Leelawadee UI,sans-serif;font-size:14px;display:block!important}}.doc{color:#111;background:#fff;width:186mm;min-height:270mm;margin:0 auto;padding:0;font-family:Sarabun,TH Sarabun New,Leelawadee UI,sans-serif}.doc-preview{padding:18mm 16mm;box-shadow:0 8px 40px #0006}.doc *{color:#111}.doc-top{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-start;margin-bottom:14px;padding-bottom:12px;display:flex}.doc-logo{max-width:180px;max-height:56px}.doc-biz .bn{letter-spacing:.5px;font-size:20px;font-weight:700}.doc-biz .bi{color:#333;margin-top:3px;font-size:12.5px;line-height:1.55}.doc-title{text-align:right}.doc-title .t{font-size:22px;font-weight:700}.doc-title .t-en{color:#555;letter-spacing:1px;font-size:12px}.doc-letter{color:#222;margin:12px 0 14px;font-size:13px;line-height:1.7}.doc-letter .letter-row{gap:8px;margin-bottom:5px;display:flex}.doc-letter .letter-lbl{color:#111;flex-shrink:0;min-width:95px;font-weight:700}.doc-letter .letter-body{text-align:justify;text-indent:2.5em;margin:10px 0;line-height:1.75}.doc-letter .letter-link{color:#1a56db;word-break:break-all;text-decoration:underline}.doc-letter-notes{color:#333;margin-top:14px;font-size:12.5px;line-height:1.6}.doc-letter-closing{text-indent:2.5em;color:#222;margin:10px 0 16px;font-size:12.5px;line-height:1.65}.doc-meta{justify-content:space-between;gap:20px;margin-bottom:14px;display:flex}.doc-party{border:1px solid #bbb;border-radius:6px;flex:1;padding:9px 12px}.doc-party .lb{color:#666;margin-bottom:3px;font-size:11px}.doc-party .nm{font-size:14px;font-weight:700}.doc-party .dt{color:#333;white-space:pre-line;font-size:12.5px;line-height:1.5}.doc-info{text-align:right;min-width:150px;font-size:12.5px;line-height:1.7}.doc-info b{text-align:left;color:#555;min-width:64px;font-weight:400;display:inline-block}.doc table.items{border-collapse:collapse;width:100%;margin:6px 0}.doc table.items th{text-align:left;background:#f0ede6;border:1px solid #999;padding:7px 8px;font-size:12.5px}.doc table.items td{vertical-align:top;border:1px solid #ccc;padding:7px 8px;font-size:13px}.doc table.items td.n,.doc table.items th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.doc table.items td.c,.doc table.items th.c{text-align:center;width:32px}.doc .sum{justify-content:space-between;gap:24px;margin-top:10px;display:flex}.doc .baht-txt{border:1px solid #bbb;border-radius:6px;flex:1;align-items:center;padding:9px 12px;font-size:13px;display:flex}.doc .sum-tbl{min-width:230px}.doc .sum-tbl .r{justify-content:space-between;padding:3px 0;font-size:13px;display:flex}.doc .sum-tbl .r.grand{border-top:1.5px solid #111;border-bottom:1.5px solid #111;margin-top:4px;padding:6px 0;font-size:14.5px;font-weight:700}.doc .sum-tbl .r.net{color:#111;font-weight:700}.doc .sum-tbl .r .v{font-variant-numeric:tabular-nums}.doc .sum-tbl .r.ins{color:#555;font-size:11.5px}.doc .sum-tbl .ins-head{border-top:1px dashed #bbb;margin-top:7px;padding-top:2px}.doc-title .t-part{color:#444;margin-top:3px;font-size:12px}.doc .notes{color:#444;white-space:pre-line;border-top:1px dashed #bbb;margin-top:16px;padding-top:8px;font-size:12px}.doc .sign{justify-content:space-between;gap:30px;margin-top:34px;display:flex}.doc .sign .box{text-align:center;flex:1;font-size:12.5px;position:relative}.doc .sign .ln{border-bottom:1px dotted #333;height:38px;margin-bottom:6px}.doc .pay{background:#f7f5f0;border:1px solid #ddd;border-radius:6px;margin-top:14px;padding:9px 12px;font-size:12.5px}.doc-toolbar{justify-content:flex-end;gap:10px;max-width:186mm;margin:0 auto 14px;display:flex}@media print{.doc-toolbar{display:none}.doc-preview{box-shadow:none;padding:0}}.hidden{display:none!important}.flex{display:flex}.aic{align-items:center}.gap8{gap:8px}.gap12{gap:12px}.wrap{flex-wrap:wrap}.mt8{margin-top:8px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.searchbar{flex:1;max-width:320px;position:relative}.searchbar .inp{padding-left:32px}.searchbar svg{opacity:.5;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.toast{background:var(--surface-3);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.toast{background:color-mix(in srgb,var(--surface-3) 90%,transparent)}}.toast{-webkit-backdrop-filter:blur(12px);border:1px solid var(--line)}@supports (color:color-mix(in lab,red,red)){.toast{border:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.toast{color:var(--text);border-radius:var(--r);z-index:200;padding:11px 20px;font-size:13.5px;animation:.18s cubic-bezier(.16,1,.3,1) pop;box-shadow:0 12px 36px -4px #00000080}.spinner{border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:0 auto 12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}body.busy{cursor:progress}body.busy .modal-foot .btn,body.busy .topbar .btn,body.busy .jobcard,body.busy .sidebar-foot .btn{pointer-events:none;opacity:.55}.netdot{color:var(--text-faint);align-items:center;gap:6px;font-size:12px;display:inline-flex}.netdot:before{content:"";background:var(--good);border-radius:50%;width:7px;height:7px}body.offline .netdot:before{background:var(--danger)}body.offline .netdot{color:var(--danger)}.auth-wrap{background:var(--bg);z-index:300;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.auth-wrap.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06090dd1}.auth-card{width:100%;max-width:360px}.auth-card .brand{margin-bottom:20px}.voided{opacity:.55;text-decoration:line-through}.voided .btn{text-decoration:none}.tbl-wrap,.li-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.navtoggle,.nav-scrim,.board-hint{display:none}@media(max-width:1080px){.view{padding:calc(var(--pad-view)*.82) calc(var(--pad-view)*.75)}}@media(max-width:900px){.navtoggle{flex-shrink:0;display:inline-flex}.sidebar{z-index:90;width:250px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 46px #0000008c}body.nav-open .sidebar{transform:none}.nav-scrim{z-index:89;opacity:0;pointer-events:none;background:#06090d8c;transition:opacity .2s;display:block;position:fixed;top:0;right:0;bottom:0;left:0}body.nav-open .nav-scrim{opacity:1;pointer-events:auto}:root[data-theme=light] .sidebar{box-shadow:0 0 46px #141e2d33}.topbar{gap:8px;padding:0 12px}.view{padding:calc(var(--pad-view)*.67) calc(var(--pad-view)*.58)}.section-head{flex-wrap:wrap;row-gap:10px}.tbl-wrap .tbl{min-width:600px}.tbl-wrap.sm .tbl{min-width:420px}:root{--board-h: calc(100dvh - 250px) }}@media(max-width:700px){.li-table{min-width:560px}}@media(max-width:600px){.topbar h1{font-size:15px}.netdot{gap:0;font-size:0}.searchbar{flex-basis:100%;max-width:none}.g4{grid-template-columns:repeat(2,1fr)}.board{scroll-snap-type:x mandatory}.col{scroll-snap-align:start;min-width:80vw}.board-hint{display:inline}.cal-dow{padding:6px 2px;font-size:11px}.cal-day{min-height:52px;padding:4px 3px}.cal-day .dn{margin-bottom:3px;font-size:11px}.cal-ev{background:currentColor;border-radius:50%;width:7px;height:7px;margin:0 2px 2px 0;padding:0;font-size:0;display:inline-block}.cal-more{display:none}.cal-title{min-width:0;font-size:14px}.modal-bg{padding:10px 8px}.modal,.modal.wide{max-width:none}.modal-head,.modal-foot{padding:14px 16px}.modal-body{max-height:calc(100dvh - 190px);padding:16px}.modal-foot{flex-wrap:wrap}.totals{width:100%;max-width:none;margin-left:0}.inp,select.inp,textarea.inp{font-size:16px}}@media(pointer:coarse){.icobtn{width:38px;height:38px}.btn.sm{padding:8px 12px}.nav button{padding:12px 11px}}.bellwrap{flex-shrink:0;position:relative}.bellbtn{position:relative}.bellbtn.has-unread{color:var(--text)}.bell-dot{background:var(--accent-strong);color:#fff;min-width:16px;height:16px;font-family:var(--mono);text-align:center;box-shadow:0 0 0 2px var(--surface);border-radius:20px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:-3px;right:-3px}.bell-scrim{z-index:60;position:fixed;top:0;right:0;bottom:0;left:0}.bell-panel{background:var(--surface-2);flex-direction:column;width:330px;max-height:min(420px,70dvh);display:flex;position:absolute;top:calc(100% + 8px);right:0}@supports (color:color-mix(in lab,red,red)){.bell-panel{background:color-mix(in srgb,var(--surface-2) 92%,transparent)}}.bell-panel{-webkit-backdrop-filter:blur(14px);border:1px solid var(--line)}@supports (color:color-mix(in lab,red,red)){.bell-panel{border:1px solid color-mix(in srgb,var(--line) 85%,transparent)}}.bell-panel{border-radius:var(--r);z-index:61;animation:.16s cubic-bezier(.16,1,.3,1) pop;box-shadow:0 20px 48px -4px #0000008c}.bell-head{border-bottom:1px solid var(--line);flex-shrink:0;padding:11px 14px;font-size:13px;font-weight:600}.bell-list{overflow-y:auto}.bell-empty{text-align:center;color:var(--text-faint);padding:26px 14px;font-size:13px}.act-row{border-bottom:1px solid var(--line-soft);padding:9px 14px;font-size:13px}.act-row:last-child{border-bottom:none}.act-row.clickable{cursor:pointer}.act-row.clickable:hover{background:var(--surface-3)}.act-row.fresh{box-shadow:inset 3px 0 0 var(--accent)}.act-line{line-height:1.45}.act-title{color:var(--text-dim)}.act-time{color:var(--text-faint);margin-top:2px;font-size:11px}@media(max-width:600px){.bell-panel{width:auto;max-width:none;max-height:calc(100dvh - 76px);position:fixed;top:56px;left:8px;right:8px}.act-line,.act-title{overflow-wrap:anywhere}}.pf{--pf-bg:#f4f6f9;--pf-paper:#fff;--pf-paper-2:#fafbfd;--pf-ink:#18212c;--pf-dim:#5b6878;--pf-faint:#8b96a4;--pf-line:#e4e9ef;--pf-line-soft:#eef2f6;--pf-brand:#2563eb;--pf-due:#c0392b;--pf-ok:#15794b;--pf-bill:#a35a12;color-scheme:light;font-family:var(--font-doc);background:var(--pf-bg);color:var(--pf-ink);min-height:100dvh;padding:28px 16px 40px;font-size:15px;line-height:1.55}.pf-sheet{background:var(--pf-paper);border:1px solid var(--pf-line);border-radius:14px;max-width:720px;margin:0 auto;overflow:hidden;box-shadow:0 1px 2px #18212c0a,0 12px 34px #18212c12}.pf-brandbar{background:linear-gradient(90deg,#2563eb,#4f46e5 45%,#f05252);height:4px}.pf-head{border-bottom:1px solid var(--pf-line);padding:24px 28px 22px}.pf-biz{letter-spacing:1.5px;text-transform:uppercase;color:var(--pf-faint);font-size:11.5px;font-weight:600}.pf-logo{object-fit:contain;max-width:190px;max-height:40px;display:block}.pf-head h1{letter-spacing:-.2px;margin-top:14px;font-size:25px;font-weight:700;line-height:1.25}.pf-meta{color:var(--pf-dim);margin-top:7px;font-size:13px}.pf-meta .sep{color:#c3ccd6;margin:0 8px}.pf-hero{border-bottom:1px solid var(--pf-line);background:linear-gradient(180deg,var(--pf-paper-2),var(--pf-paper));padding:24px 28px}.pf-hero .lb{color:var(--pf-dim);letter-spacing:.2px;font-size:12.5px}.pf-amount{letter-spacing:-1.2px;font-variant-numeric:tabular-nums;margin-top:3px;font-size:40px;font-weight:700;line-height:1.15}.pf-amount.clear{color:var(--pf-ok)}.pf-hero .sub{color:var(--pf-faint);margin-top:5px;font-size:13px}.pf-alert{color:var(--pf-due);background:#fdf2f0;border:1px solid #f2d4ce;border-radius:9px;align-items:flex-start;gap:10px;margin-top:15px;padding:11px 13px;font-size:13px;display:flex}.pf-alert b{font-weight:700}.pf-alert i{background:var(--pf-due);color:#fff;text-align:center;border-radius:50%;flex-shrink:0;width:18px;height:18px;margin-top:1px;font-size:12px;font-style:normal;font-weight:700;line-height:18px}.pf-sec{border-bottom:1px solid var(--pf-line);padding:22px 28px}.pf-sec:last-of-type{border-bottom:none}.pf-sec h2{letter-spacing:1.3px;text-transform:uppercase;color:var(--pf-faint);margin-bottom:15px;font-size:11.5px;font-weight:700}.pf-sec h2 .n{color:var(--pf-dim);letter-spacing:0;margin-left:6px;font-weight:600}.pf-row{border-top:1px solid var(--pf-line-soft);align-items:flex-start;gap:16px;padding:14px 0;display:flex}.pf-row:first-of-type{border-top:none;padding-top:0}.pf-row:last-of-type{padding-bottom:0}.pf-row .g{flex:1;min-width:0}.pf-title{overflow-wrap:anywhere;font-size:15.5px;font-weight:600;line-height:1.35}.pf-sub{color:var(--pf-dim);margin-top:3px;font-size:12.5px}.pf-tags{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.pf-val{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;padding-top:1px;font-size:17px;font-weight:700}.pf-val.muted{color:var(--pf-dim);font-size:15px;font-weight:600}.pf-stage{margin-top:10px}.pf-stage-top{justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12.5px;display:flex}.pf-stage-now{color:var(--pf-brand);font-weight:700}.pf-stage-step{color:var(--pf-faint);font-variant-numeric:tabular-nums}.pf-track{background:var(--pf-line);border-radius:4px;height:5px;overflow:hidden}.pf-fill{background:var(--pf-brand);border-radius:4px;height:100%}.pf-tag{border:1px solid var(--pf-line);background:var(--pf-paper-2);color:var(--pf-dim);white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;display:inline-flex}.pf-tag.due{color:var(--pf-due);background:#fdf3f1;border-color:#f0d2cc;font-weight:600}.pf-tag.billed{color:var(--pf-bill);background:#fdf8ef;border-color:#efdfc3}.pf-tag.ok{color:var(--pf-ok);background:#f1f9f4;border-color:#c9e6d6}.pf-tag.link{color:#2563eb;background:#eff6ff;border-color:#bfdbfe;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s}.pf-tag.link:hover{background:#dbeafe;border-color:#93c5fd;text-decoration:underline}.pf-code{font-family:var(--mono);color:var(--pf-faint);letter-spacing:.2px;font-size:11px}.pf-none{color:var(--pf-faint);font-size:13.5px}.pf-pay{background:#f5f8ff;border:1px solid #d9e4fb;border-radius:12px;margin-top:18px;padding:14px 16px;box-shadow:0 2px 8px #2563eb0a}.pf-pay-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.pf-pay-lb{letter-spacing:1.2px;text-transform:uppercase;color:var(--pf-brand);font-size:11px;font-weight:700}.pf-copy-btn{color:var(--pf-brand);-webkit-user-select:none;user-select:none;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:11.5px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.pf-copy-btn:hover{color:#1d4ed8;background:#dbeafe;transform:translateY(-1px)}.pf-copy-btn.copied{color:#15803d;background:#dcfce7;border-color:#86efac}.pf-pay-body{white-space:pre-line;overflow-wrap:anywhere;margin-top:8px;font-size:14.5px;font-weight:500;line-height:1.65}.pf-pay-note{color:var(--pf-dim);margin-top:8px;font-size:12.5px}.pf-foot{background:var(--pf-paper-2);border-top:1px solid var(--pf-line);padding:18px 28px 24px}.pf-tot{border-bottom:1px solid var(--pf-line);flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:16px;padding-bottom:14px;font-size:13.5px;display:flex}.pf-tot b{font-variant-numeric:tabular-nums;font-weight:700}.pf-thanks{text-align:center;padding:4px 0 2px}.pf-thanks-lead{color:var(--pf-dim);font-size:13px}.pf-thanks-name{letter-spacing:-.2px;margin-top:2px;font-size:19px;font-weight:700}.pf-thanks-name:after{content:"";background:linear-gradient(90deg,#2563eb,#f05252);border-radius:2px;width:44px;height:2px;margin:11px auto 0;display:block}.pf-contact{color:var(--pf-dim);overflow-wrap:anywhere;margin-top:13px;font-size:13px;line-height:1.75}.pf-contact .lb{letter-spacing:1.2px;text-transform:uppercase;color:var(--pf-faint);margin-bottom:6px;font-size:10.5px;font-weight:700;display:block}.pf-contact-note{color:var(--pf-dim);margin-bottom:6px;font-size:13px}.pf-contact-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.pf-contact-chip{color:var(--pf-ink);background:var(--pf-paper);border:1px solid var(--pf-line);border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-size:12.5px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #00000008}.pf-contact-chip:hover{border-color:var(--pf-brand);color:var(--pf-brand);background:#f8fafc;transform:translateY(-1px);box-shadow:0 3px 8px #2563eb1f}.pf-contact-chip .ico{font-size:13px}.pf-hint{border-top:1px solid var(--pf-line);text-align:center;color:var(--pf-faint);margin-top:16px;padding-top:12px;font-size:12px}.pf-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pf-theme-toggle{background:var(--pf-line-soft);border:1px solid var(--pf-line);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.pf-theme-btn{color:var(--pf-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 9px;font-size:11.5px;font-weight:500;transition:all .15s;display:inline-flex}.pf-theme-btn:hover{color:var(--pf-ink)}.pf-theme-btn.active{background:var(--pf-paper);color:var(--pf-brand);font-weight:600;box-shadow:0 1px 3px #0000001a}.pf-tag.slip-btn{cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:20px;align-items:center;gap:5px;padding:5px 13px;font-weight:600;transition:all .18s;display:inline-flex;box-shadow:0 2px 8px #2563eb4d;color:#fff!important}.pf-tag.slip-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb73}.pf-slip-main-btn{cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:600;transition:all .18s;display:inline-flex;box-shadow:0 2px 8px #2563eb4d;color:#fff!important}.pf-slip-main-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb73}.pf-promo-card{border:1px solid var(--pf-brand);background:linear-gradient(135deg,#2563eb0f,#4f46e50a);margin-top:20px;padding:16px 20px}@supports (color:color-mix(in lab,red,red)){.pf-promo-card{border:1px solid color-mix(in srgb,var(--pf-brand) 25%,transparent)}}.pf-promo-card{text-align:center;border-radius:12px}.pf-promo-badge{letter-spacing:1.5px;text-transform:uppercase;color:var(--pf-brand);margin-bottom:4px;font-size:10.5px;font-weight:700}.pf-promo-title{color:var(--pf-ink);margin-bottom:6px;font-size:15px;font-weight:700}.pf-promo-desc{color:var(--pf-dim);max-width:540px;margin-bottom:12px;margin-left:auto;margin-right:auto;font-size:12.5px;line-height:1.5}.pf-promo-chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pf-promo-chip{background:var(--pf-paper);border:1px solid var(--pf-line);color:var(--pf-dim);border-radius:14px;padding:3px 10px;font-size:11.5px;font-weight:500}.pf-tag.pf-review-btn{cursor:pointer;background:linear-gradient(135deg,#0d9488,#0f766e);border:none;border-radius:20px;align-items:center;gap:5px;padding:5px 13px;font-weight:600;text-decoration:none;transition:all .18s;display:inline-flex;box-shadow:0 2px 8px #0d94884d;color:#fff!important}.pf-tag.pf-review-btn:hover{background:linear-gradient(135deg,#0f766e,#115e59);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 14px #0d948873}.pf-quick-contact-bar{background:var(--pf-paper-2);border:1px solid var(--pf-line-soft);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex}.pf-quick-contact-bar .lbl{color:var(--pf-dim);font-size:12px;font-weight:600}.pf-quick-contact-actions{align-items:center;gap:8px;display:flex}.pf-contact-btn{border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.pf-contact-btn.phone{background:#15803d;color:#fff!important}.pf-contact-btn.phone:hover{background:#166534;transform:translateY(-1px)}.pf-contact-btn.email{background:var(--pf-paper);color:var(--pf-ink);border:1px solid var(--pf-line)}.pf-contact-btn.email:hover{border-color:var(--pf-brand);color:var(--pf-brand);transform:translateY(-1px)}.pf-print-btn.copied{color:#15803d;background:#dcfce7;border-color:#86efac}.pf[data-theme=dark]{--pf-bg:#0f1318;--pf-paper:#161c24;--pf-paper-2:#1c2430;--pf-ink:#f0f4f8;--pf-dim:#94a3b8;--pf-faint:#64748b;--pf-line:#263140;--pf-line-soft:#1e2733;--pf-brand:#3b82f6;--pf-due:#f87171;--pf-ok:#4ade80;--pf-bill:#fbbf24;color-scheme:dark}.pf[data-theme=dark] .pf-sheet{box-shadow:0 2px 8px #0006,0 16px 40px #0009}.pf[data-theme=dark] .pf-pay{background:#172033;border-color:#253454}.pf[data-theme=dark] .pf-alert{background:#2c1618;border-color:#5c2427}.pf[data-theme=dark] .pf-tag{color:#cbd5e1;background:#1e293b;border-color:#334155}.pf[data-theme=dark] .pf-tag.due{color:#fca5a5;background:#3b191c;border-color:#7f1d1d}.pf[data-theme=dark] .pf-tag.billed{color:#fde047;background:#362512;border-color:#78350f}.pf[data-theme=dark] .pf-tag.ok{color:#86efac;background:#143323;border-color:#14532d}.pf[data-theme=dark] .pf-tag.link{color:#93c5fd;background:#1e3a8a;border-color:#1d4ed8}.pf[data-theme=dark] .pf-modal{color:#f7fafc;background:#1a202c;border:1px solid #2d3748}.pf[data-theme=dark] .pf-modal-head{border-bottom-color:#2d3748}.pf[data-theme=dark] .pf-modal-title{color:#edf2f7}.pf[data-theme=dark] .pf-val-txt{color:#e2e8f0}.pf[data-theme=dark] .pf-inp{color:#f7fafc;background:#10151d;border-color:#2d3748}.pf-msg{text-align:center;padding:56px 28px}.pf-msg .big{margin-bottom:7px;font-size:17px;font-weight:600}.pf-msg .txt{color:var(--pf-dim);max-width:340px;margin:0 auto;font-size:13.5px}.pf-spin{border:2.5px solid var(--pf-line);border-top-color:var(--pf-brand);border-radius:50%;width:22px;height:22px;margin:0 auto 14px;animation:.7s linear infinite spin}@media(max-width:600px){.pf{padding:14px 10px 28px;font-size:14.5px}.pf-sheet{border-radius:12px}.pf-head{padding:20px 18px 18px}.pf-head h1{font-size:21px}.pf-hero{padding:20px 18px}.pf-amount{font-size:33px}.pf-sec{padding:18px}.pf-foot{padding:16px 18px 22px}.pf-row{gap:12px}.pf-val{font-size:16px}.pf-pay{padding:13px 14px}.pf-thanks-name{font-size:17.5px}}.doc-items-wrap{overflow-x:auto}@media screen and (max-width:860px){.doc{width:100%;max-width:186mm;min-height:0}.doc-preview{padding:16px 14px}.doc-toolbar{max-width:100%;padding:0 12px}.doc-top,.doc-meta,.doc .sum,.doc .sign{flex-wrap:wrap}.doc-title{text-align:left}.doc-info{text-align:left;min-width:0}.doc .sum-tbl{width:100%;min-width:0}.doc .baht-txt{flex-basis:100%}}@media print{.doc-items-wrap{overflow:visible}}:root{--shadow-sm:0 2px 8px #0000002e;--shadow-md:0 8px 24px #00000047;--shadow-lg:0 16px 40px #00000061;--shadow-glow:0 0 20px var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--shadow-glow:0 0 20px color-mix(in srgb, var(--accent) 30%, transparent)}}:root[data-theme=light]{--shadow-sm:0 2px 8px #141e2d14;--shadow-md:0 8px 24px #141e2d1f;--shadow-lg:0 16px 40px #141e2d2e;--shadow-glow:0 0 20px var(--accent)}@supports (color:color-mix(in lab,red,red)){:root[data-theme=light]{--shadow-glow:0 0 20px color-mix(in srgb, var(--accent) 20%, transparent)}}.card-hover{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s,border-color .22s!important}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--accent);transform:translateY(-2px)}@supports (color:color-mix(in lab,red,red)){.card-hover:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}}.topbar-search-btn{background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text-dim);cursor:pointer;border-radius:20px;align-items:center;gap:8px;margin-left:12px;padding:6px 12px;font-size:13px;transition:all .18s;display:flex}.topbar-search-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--accent)}.topbar-search-btn .search-placeholder{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.cmd-kbd{font-family:var(--mono);background:var(--surface);border:1px solid var(--line);color:var(--text-faint);border-radius:4px;padding:1px 6px;font-size:11px}.quick-actions-bar{background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;display:flex}@supports (color:color-mix(in lab,red,red)){.quick-actions-bar{background:color-mix(in srgb,var(--surface) 80%,transparent)}}.quick-actions-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--r);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm);padding:12px 16px}.cmd-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#0c1016a6;justify-content:center;align-items:flex-start;padding-top:10vh;animation:.2s ease-out cmdFadeIn;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes cmdFadeIn{0%{opacity:0}to{opacity:1}}.cmd-modal{background:var(--surface);border:1px solid var(--accent);width:100%;max-width:640px}@supports (color:color-mix(in lab,red,red)){.cmd-modal{border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}}.cmd-modal{box-shadow:var(--shadow-lg),var(--shadow-glow);border-radius:14px;flex-direction:column;animation:.22s cubic-bezier(.16,1,.3,1) cmdSlideDown;display:flex;overflow:hidden}@keyframes cmdSlideDown{0%{opacity:0;transform:translateY(-12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cmd-search-header{border-bottom:1px solid var(--line-soft);background:var(--surface-2);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd-search-icon{color:var(--accent);align-items:center;display:flex}.cmd-search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.cmd-search-input::placeholder{color:var(--text-faint)}.cmd-list{max-height:380px;padding:8px;overflow-y:auto}.cmd-empty{text-align:center;color:var(--text-dim);padding:32px 16px;font-size:14px}.cmd-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;transition:background .15s,transform .15s;display:flex}.cmd-item:hover,.cmd-item.active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.cmd-item:hover,.cmd-item.active{background:color-mix(in srgb,var(--accent) 15%,var(--surface-2))}}.cmd-item:hover,.cmd-item.active{transform:translate(2px)}.cmd-type-badge{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.cmd-type-nav{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.cmd-type-nav{background:color-mix(in srgb,var(--accent) 20%,transparent)}}.cmd-type-nav{color:var(--accent)}.cmd-type-job{background:var(--teal)}@supports (color:color-mix(in lab,red,red)){.cmd-type-job{background:color-mix(in srgb,var(--teal) 20%,transparent)}}.cmd-type-job{color:var(--teal)}.cmd-type-client{background:var(--good)}@supports (color:color-mix(in lab,red,red)){.cmd-type-client{background:color-mix(in srgb,var(--good) 20%,transparent)}}.cmd-type-client{color:var(--good)}.cmd-type-doc{background:var(--warn)}@supports (color:color-mix(in lab,red,red)){.cmd-type-doc{background:color-mix(in srgb,var(--warn) 20%,transparent)}}.cmd-type-doc{color:var(--warn)}.cmd-item-body{flex:1;min-width:0}.cmd-item-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.cmd-item-subtitle{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.cmd-enter-hint{color:var(--text-faint);opacity:0;font-size:11px;transition:opacity .15s}.cmd-item.active .cmd-enter-hint{opacity:1}.cmd-footer{background:var(--surface-2);border-top:1px solid var(--line-soft);color:var(--text-faint);align-items:center;gap:16px;padding:8px 16px;font-size:11.5px;display:flex}.dash-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px}.dash-charts{grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:20px}.dash-cards{gap:16px;margin-bottom:24px}@media(max-width:900px){.dash-charts{grid-template-columns:1fr}}@media(max-width:600px){.dash-header{flex-direction:column;align-items:flex-start;gap:16px}.dash-header>div:last-child{width:100%}.dash-header .btn{flex:1;justify-content:center}.dash-cards{grid-template-columns:1fr}}.searchbar{max-width:340px}.searchbar .inp{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding-left:36px}@supports (color:color-mix(in lab,red,red)){.searchbar .inp{border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}}.searchbar .inp{box-shadow:0 2px 6px #0000000a}.searchbar .inp:focus{border-color:var(--accent);box-shadow:0 4px 12px #00000014}.searchbar svg{color:var(--text-dim);left:12px}.col-head{border-bottom:1px solid var(--line)!important}@supports (color:color-mix(in lab,red,red)){.col-head{border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent)!important}}.col-head{-webkit-backdrop-filter:blur(12px);background:0 0!important;font-weight:700!important}.col-head-bg{opacity:.7;z-index:-1;border-top-left-radius:var(--r);border-top-right-radius:var(--r);position:absolute;top:0;right:0;bottom:0;left:0}.jobcard{background:var(--surface)!important;border:1px solid var(--line)!important}@supports (color:color-mix(in lab,red,red)){.jobcard{border:1px solid color-mix(in srgb,var(--line) 60%,transparent)!important}}.jobcard{border-left:1px solid var(--line)!important;border-radius:12px!important;padding:14px!important;box-shadow:0 2px 8px -2px #0000000d,0 1px 3px #00000005!important}@supports (color:color-mix(in lab,red,red)){.jobcard{border-left:1px solid color-mix(in srgb,var(--line) 60%,transparent)!important}}.jobcard:hover{border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.jobcard:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))!important}}.jobcard:hover{transform:translateY(-3px)!important;box-shadow:0 12px 24px -6px #0000001f,0 4px 8px #0000000a!important}.jobcard .jt{margin-bottom:6px!important;font-size:14px!important;font-weight:700!important}.jdate-badge{background:var(--surface-2);color:var(--text-dim);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:500;display:inline-flex}.jdate-badge.due{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.jdate-badge.due{background:color-mix(in srgb,var(--danger) 12%,transparent)}}.jdate-badge.due{color:var(--danger);font-weight:600}.jdate-badge.due.soon{background:var(--warn)}@supports (color:color-mix(in lab,red,red)){.jdate-badge.due.soon{background:color-mix(in srgb,var(--warn) 15%,transparent)}}.jdate-badge.due.soon{color:var(--warn)}.jdate-badge.due.over{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.jdate-badge.due.over{background:color-mix(in srgb,var(--danger) 15%,transparent)}}.jdate-badge.due.over{color:var(--danger)}.pri-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.pri-dot.p-high{background:var(--danger)}.pri-dot.p-med{background:var(--warn)}.pri-dot.p-low{background:var(--line)}.cal-grid{border:1px solid var(--line)!important}@supports (color:color-mix(in lab,red,red)){.cal-grid{border:1px solid color-mix(in srgb,var(--line) 60%,transparent)!important}}.cal-grid{background:var(--line-soft)!important;box-shadow:0 4px 16px #00000014!important}@supports (color:color-mix(in lab,red,red)){.cal-grid{background:color-mix(in srgb,var(--line-soft) 40%,transparent)!important}}.cal-dow{background:var(--surface)!important;border-bottom:1px solid var(--line)!important;padding:12px 4px!important;font-weight:700!important}@supports (color:color-mix(in lab,red,red)){.cal-dow{border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent)!important}}.cal-day{background:var(--surface)!important;transition:all .2s!important}.cal-day:hover{background:var(--surface-2)!important}.cal-day.today{background:linear-gradient(145deg,var(--surface),var(--surface))!important}@supports (color:color-mix(in lab,red,red)){.cal-day.today{background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 95%,var(--accent)),var(--surface))!important}}.cal-day.today{z-index:1;box-shadow:inset 0 0 0 1.5px var(--accent)!important}.cal-day.today .dn{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;background:var(--accent)!important;color:#fff!important}.cal-day.other{opacity:.4!important;background:var(--surface)!important}@supports (color:color-mix(in lab,red,red)){.cal-day.other{background:color-mix(in srgb,var(--surface) 70%,transparent)!important}}.cal-ev{align-items:center;gap:4px;transition:transform .15s,opacity .15s;display:flex;overflow:hidden;border-radius:6px!important;font-size:11px!important;font-weight:500!important}.cal-ev:hover{transform:translate(1px);opacity:.9!important}.cal-ev svg{opacity:.7;width:11px;height:11px}.cal-day-add{opacity:0;transition:opacity .2s,transform .2s!important}.cal-day:hover .cal-day-add{opacity:1;transform:scale(1.1)}.cal-ev-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}@media(max-width:600px){.cal-day{min-height:70px!important;padding:6px 3px!important}.cal-ev{border-left:none!important;border-radius:4px!important;justify-content:center!important;padding:3px!important}.cal-ev span{display:none!important}.cal-ev svg{width:12px;height:12px;margin:0!important}}@media(max-width:700px){.tbl-mobile-cards{width:100%;display:block;min-width:0!important}.tbl-mobile-cards thead{display:none}.tbl-mobile-cards tbody,.tbl-mobile-cards tr,.tbl-mobile-cards td{width:100%;display:block}.tbl-mobile-cards tr{border:1px solid var(--line-soft);background:var(--surface-1);border-radius:8px;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.tbl-mobile-cards td{text-align:right;justify-content:space-between;align-items:center;padding:12px 14px;display:flex;border:none!important;border-bottom:1px dashed var(--line-soft)!important}.tbl-mobile-cards td:before{content:attr(data-label);color:var(--text-faint);text-transform:uppercase;white-space:nowrap;text-align:left;margin-right:16px;font-size:11.5px;font-weight:500}.tbl-mobile-cards td:last-child{border-bottom:none!important}.tbl-mobile-cards td:empty{display:none}.tbl-wrap:has(.tbl-mobile-cards){box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}}.center,.txt-center{text-align:center}.dash-v2-layout{flex-direction:column;gap:20px;max-width:1600px;margin:0 auto;display:flex}.dash-v2-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:4px;display:flex}.dash-v2-top-row{grid-template-columns:repeat(4,1fr) 320px;gap:16px;display:grid}@media(max-width:1300px){.dash-v2-top-row{grid-template-columns:repeat(2,1fr) 1fr}}@media(max-width:900px){.dash-v2-top-row{grid-template-columns:1fr}}.dash-v2-mid-row,.dash-v2-bot-row{grid-template-columns:1fr 340px;gap:20px;display:grid}@media(max-width:1100px){.dash-v2-mid-row,.dash-v2-bot-row{grid-template-columns:1fr}}.dash-card-slate{background:var(--surface);border:1px solid var(--line-soft);border-radius:18px;flex-direction:column;padding:20px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000001f}.dash-card-slate:hover{border-color:var(--line);transform:translateY(-2px);box-shadow:0 8px 28px #00000038}.pulse-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;position:relative}.pulse-dot:after{content:"";background:inherit;opacity:.6;border-radius:50%;animation:1.8s cubic-bezier(.215,.61,.355,1) infinite pulse-ring;position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px}@keyframes pulse-ring{0%{opacity:.8;transform:scale(.95)}50%{opacity:0;transform:scale(1.6)}to{opacity:0;transform:scale(1.6)}}.pulse-dot.pulse-mint{background:#2dd4bf}.pulse-dot.pulse-violet{background:#8b5cf6}.pulse-dot.pulse-amber{background:#f59e0b}.pulse-dot.pulse-red{background:#ef4444}.pulse-dot.pulse-mono{background:#fff;box-shadow:0 0 8px #fffc}.dash-card-slate.card-glow-violet:hover{border-color:#8b5cf673;box-shadow:0 8px 30px #8b5cf62e,0 0 0 1px #8b5cf626}.dash-card-slate.card-glow-mint:hover{border-color:#2dd4bf73;box-shadow:0 8px 30px #2dd4bf2e,0 0 0 1px #2dd4bf26}.dash-card-slate.card-glow-amber:hover{border-color:#f59e0b73;box-shadow:0 8px 30px #f59e0b2e,0 0 0 1px #f59e0b26}.dash-card-slate.card-glow-red:hover{border-color:#ef444473;box-shadow:0 8px 30px #ef44442e,0 0 0 1px #ef444426}.dash-card-slate.card-glow-mono:hover,.dash-card-slate.card-glow-theme:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dash-card-slate.card-glow-mono:hover,.dash-card-slate.card-glow-theme:hover{border-color:color-mix(in srgb,var(--accent) 55%,#ffffff80)}}.dash-card-slate.card-glow-mono:hover,.dash-card-slate.card-glow-theme:hover{box-shadow:0 8px 32px var(--accent),0 0 0 1px var(--accent)}@supports (color:color-mix(in lab,red,red)){.dash-card-slate.card-glow-mono:hover,.dash-card-slate.card-glow-theme:hover{box-shadow:0 8px 32px color-mix(in srgb,var(--accent) 30%,#fff3),0 0 0 1px color-mix(in srgb,var(--accent) 20%,#ffffff1a)}}.dash-card-highlight-mint{transition:all .25s cubic-bezier(.4,0,.2,1)}.dash-card-highlight-mint:hover{border-color:#2dd4bf99;transform:translateY(-2px);box-shadow:0 10px 32px #2dd4bf38}.dash-card-highlight-mint{color:var(--text);background:linear-gradient(135deg,#2dd4bf2e,#14b8a614);border:1px solid #2dd4bf59;border-radius:18px;flex-direction:column;justify-content:space-between;padding:20px;display:flex;position:relative;box-shadow:0 4px 20px #2dd4bf14}:root[data-theme=light] .dash-card-highlight-mint{color:#0f766e;background:linear-gradient(135deg,#ccfbf1,#e6fffa);border-color:#99f6e4}.dash-metric-icon{background:var(--surface-2);width:38px;height:38px;color:var(--text-dim);border-radius:10px;justify-content:center;align-items:center;margin-bottom:12px;display:flex}.mini-cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px;display:grid}.mini-cal-day-header{color:var(--text-faint);padding:4px 0;font-size:11px;font-weight:600}.mini-cal-day{height:28px;color:var(--text-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:12px;transition:background .15s;display:flex;position:relative}.mini-cal-day:hover{background:var(--surface-2);color:var(--text)}.mini-cal-day.active{color:#fff;background:#8b5cf6;font-weight:700;box-shadow:0 2px 8px #8b5cf666}.mini-cal-day.has-event:after{content:"";background:#2dd4bf;border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px}.mini-cal-day.active.has-event:after{background:#fff}.mini-cal-day.other-month{opacity:.3}.agenda-item{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.agenda-item:hover{background:var(--surface-3);border-color:var(--line)}.agenda-icon-box{color:#8b5cf6;background:#8b5cf626;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.recharts-custom-tooltip{background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--text)!important;border-radius:10px!important;padding:10px 14px!important;box-shadow:0 8px 24px #00000040!important}.pf-budget-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px;display:grid}.pf-budget-card{background:var(--pf-paper-2);border:1px solid var(--pf-line);border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.pf-budget-card.highlight{background:#3b82f60d;border-color:#3b82f6}.pf-budget-lbl{text-transform:uppercase;color:var(--pf-faint);letter-spacing:.5px;font-size:11px;font-weight:700}.pf-budget-val{color:var(--pf-ink);font-size:20px;font-weight:800;font-family:var(--font-mono,monospace)}.pf-budget-val.ok{color:#059669}.pf-budget-val.due{color:#2563eb}.pf-view-switcher{background:var(--pf-paper-2);border:1px solid var(--pf-line);border-radius:14px;flex-wrap:wrap;gap:8px;margin:20px 0 10px;padding:6px;display:flex}.pf-switcher-btn{min-width:fit-content;color:var(--pf-dim);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;flex:150px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:600;transition:all .15s;display:inline-flex}.pf-switcher-btn:hover{color:var(--pf-ink);background:#00000008}.pf-switcher-btn.active{background:var(--pf-paper);color:#2563eb;border-color:#2563eb40;font-weight:700;box-shadow:0 2px 8px #0000000f}.pf-switcher-badge{color:#475569;background:#f1f5f9;border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.pf-switcher-btn.active .pf-switcher-badge{color:#1d4ed8;background:#dbeafe}.pf-switcher-badge.alert{color:#b91c1c;background:#fee2e2}[data-theme=dark] .pf-switcher-badge{color:#94a3b8;background:#1e293b}[data-theme=dark] .pf-switcher-btn.active .pf-switcher-badge{color:#60a5fa;background:#2563eb33}[data-theme=dark] .pf-switcher-badge.alert{color:#f87171;background:#ef444433}.pf-doc-list{flex-direction:column;gap:12px;display:flex}.pf-doc-item-card{background:var(--pf-paper-2);border:1px solid var(--pf-line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:all .15s;display:flex}.pf-doc-item-card:hover{border-color:#93c5fd;box-shadow:0 4px 14px #2563eb0f}.pf-doc-item-info{flex-direction:column;gap:4px;display:flex}.pf-doc-item-title{color:var(--pf-ink);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.pf-doc-item-meta{color:var(--pf-dim);flex-wrap:wrap;gap:10px;font-size:12.5px;display:flex}.pf-doc-item-btn{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #1d4ed8;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #2563eb33}.pf-doc-item-btn:hover{background:#1d4ed8;transform:translateY(-1px)}.pf-deliverables-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.pf-deliverable-card{background:var(--pf-paper-2);border:1px solid var(--pf-line);color:var(--pf-ink);border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;text-decoration:none;transition:all .15s;display:flex}.pf-deliverable-card:hover{background:#2563eb14;border-color:#3b82f6;transform:translateY(-1px)}.pf-deliverable-title{font-size:13.5px;font-weight:700}.pf-deliverable-type{color:var(--pf-dim);margin-top:3px;font-size:11.5px}.pf-doc-btn{border:1px solid var(--pf-line);background:var(--pf-paper);color:var(--pf-ink);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.pf-doc-btn:hover{color:#fff;background:#2563eb;border-color:#2563eb}.dash-jobs-container{flex-direction:column;gap:10px;display:flex}.dash-job-card{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:12px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.dash-job-card:hover{border-color:var(--line)}.dash-job-main{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:12px 14px;transition:background .15s;display:flex}.dash-job-main:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dash-job-main:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}}.dash-job-expand-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.dash-job-expand-btn:hover{color:var(--text);background:var(--surface)}.dash-job-subtasks-panel{background:var(--surface);padding:10px 14px 14px 44px}@supports (color:color-mix(in lab,red,red)){.dash-job-subtasks-panel{background:color-mix(in srgb,var(--surface) 60%,transparent)}}.dash-job-subtasks-panel{border-top:1px solid var(--line-soft);flex-direction:column;gap:8px;display:flex}.dash-subtask-row{background:var(--surface);border:1px solid var(--line-soft);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;transition:all .15s;display:flex}.dash-subtask-row:hover{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dash-subtask-row:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}}.dash-subtask-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.dash-subtask-del-btn{color:var(--text-faint);cursor:pointer;opacity:.4;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .15s;display:flex}.dash-subtask-del-btn:hover{opacity:1;color:var(--danger);background:#ef44441a}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
