:root{--color-accent:#5b7cfa;--color-accent-rgb:91,124,250;--color-accent-dark:#4a69e8;--color-accent-darker:#3f5bd6;--color-accent-soft:#eef1fe;--color-bg:#f4f6fb;--color-card:#fff;--color-muted:#f3f5f9;--color-border:#e6e9f0;--color-border-strong:#d7dbe6;--color-text:#1a2233;--color-text-muted:#6b7488;--color-destructive:#e5484d;--radius-sm:0.4rem;--radius-md:0.6rem;--radius-lg:0.9rem;--shadow-xs:0 1px 2px rgba(20,28,51,.05);--shadow-sm:0 1px 2px rgba(20,28,51,.06),0 1px 3px rgba(20,28,51,.04);--shadow-md:0 4px 12px rgba(20,28,51,.08),0 2px 4px rgba(20,28,51,.04);--shadow-lg:0 12px 28px rgba(20,28,51,.12),0 4px 8px rgba(20,28,51,.05);--bs-body-bg:var(--color-bg);--bs-body-color:var(--color-text);--bs-body-font-family:"Outfit","Noto Sans Thai",sans-serif;--bs-secondary-color:var(--color-text-muted);--bs-border-color:var(--color-border);--bs-primary:#5b7cfa;--bs-primary-rgb:91,124,250;--bs-link-color:#4a63d8;--bs-link-color-rgb:74,99,216;--bs-link-hover-color:#3a50bf;--bs-border-radius:var(--radius-md);--bs-border-radius-sm:var(--radius-sm);--bs-border-radius-lg:var(--radius-lg);--bs-focus-ring-color:rgba(var(--color-accent-rgb),0.25)}body,html{height:100%;margin:0;overflow:hidden}body{background-color:var(--bs-body-bg);color:var(--bs-body-color);font-family:Outfit,Noto Sans Thai,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-xxs{font-size:.625rem;line-height:1rem}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.space-y-1>*+*{margin-top:.25rem}.space-y-1-5>*+*{margin-top:.375rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-x-1>*+*{margin-left:.25rem}.space-x-2>*+*{margin-left:.5rem}.bg-card{background-color:var(--color-card)}.bg-muted{background-color:var(--color-muted)}.text-muted-foreground{color:var(--color-text-muted)}.text-destructive{color:var(--color-destructive)}.border-input{border-color:var(--color-border)!important}.btn{--bs-btn-border-radius:var(--radius-md);font-weight:500;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease}.btn:active{transform:translateY(.5px)}.btn-primary{--bs-btn-bg:var(--color-accent);--bs-btn-border-color:var(--color-accent);--bs-btn-hover-bg:var(--color-accent-dark);--bs-btn-hover-border-color:var(--color-accent-dark);--bs-btn-active-bg:var(--color-accent-darker);--bs-btn-active-border-color:var(--color-accent-darker);--bs-btn-disabled-bg:var(--color-accent);--bs-btn-disabled-border-color:var(--color-accent);--bs-btn-focus-shadow-rgb:var(--color-accent-rgb);box-shadow:0 1px 2px rgba(var(--color-accent-rgb),.35)}.btn-primary:hover{box-shadow:0 4px 12px rgba(var(--color-accent-rgb),.35)}.btn-outline-secondary{--bs-btn-color:#3a4256;--bs-btn-border-color:var(--color-border-strong);--bs-btn-bg:#fff;--bs-btn-hover-bg:var(--color-muted);--bs-btn-hover-border-color:var(--color-border-strong);--bs-btn-hover-color:var(--color-text);--bs-btn-active-bg:#eceef4;--bs-btn-active-border-color:var(--color-border-strong);--bs-btn-active-color:var(--color-text)}.btn-link{--bs-btn-color:var(--bs-link-color)}.form-control,.form-select{border-color:var(--color-border-strong);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.form-control:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.18)}.form-control-sm,.form-select-sm{border-radius:var(--radius-sm)}.card{--bs-card-border-color:var(--color-border);--bs-card-border-radius:var(--radius-lg);--bs-card-inner-border-radius:calc(var(--radius-lg) - 1px);--bs-card-cap-bg:transparent;border-color:var(--color-border)}.card-header{border-bottom-color:var(--color-border)}.card-footer{border-top-color:var(--color-border)}.shadow-sm{box-shadow:var(--shadow-sm)!important}.shadow{box-shadow:var(--shadow-md)!important}.dropdown-menu{--bs-dropdown-border-color:var(--color-border);--bs-dropdown-border-radius:var(--radius-lg);--bs-dropdown-link-active-bg:var(--color-accent);--bs-dropdown-link-active-color:#fff;padding:.3rem;box-shadow:var(--shadow-lg)}.dropdown-item{border-radius:var(--radius-sm);padding:.4rem .6rem}.dropdown-item.active,.dropdown-item:active{color:#fff}.segmented{background:var(--color-muted);border-radius:var(--radius-md);padding:.2rem;gap:.15rem}.segmented .btn{border:0!important;border-radius:calc(var(--radius-md) - .2rem)!important;margin:0!important;box-shadow:none!important;font-weight:500;color:var(--color-text-muted);background:transparent}.segmented .btn:hover{color:var(--color-text);background:transparent}.segmented .btn-primary{--bs-btn-bg:#fff;--bs-btn-border-color:#fff;--bs-btn-hover-bg:#fff;--bs-btn-hover-border-color:#fff;--bs-btn-active-bg:#fff;color:var(--color-text);box-shadow:var(--shadow-xs)!important}.app-toolbar{background:var(--color-card);box-shadow:var(--shadow-xs);border-bottom:1px solid var(--color-border)!important;z-index:5}.btn-soft{background-color:var(--color-muted);color:var(--bs-body-color);border:1px solid var(--color-border)}.btn-soft:hover{background-color:#e8ebf3}.rnd-editable{cursor:move;outline:2px dashed transparent;outline-offset:4px;transition:outline-color .12s ease}.rnd-editable:hover{outline-color:rgba(91,124,250,.55)}.rnd-editable.rnd-selected,.rnd-editable:focus-within{outline-color:rgba(91,124,250,.9);outline-style:solid}.rnd-editable [contenteditable]:focus{box-shadow:0 0 0 2px rgba(91,124,250,.45);border-radius:2px}[contenteditable]:empty:before{content:attr(data-placeholder);opacity:.4}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.app-shell{height:100vh;height:100dvh}.pane-left,.pane-right{width:100%;flex-shrink:0;background-color:var(--color-card);overflow:hidden}.pane-left{max-height:16rem;border-bottom:1px solid var(--color-border)}.pane-right{max-height:24rem;border-top:1px solid var(--color-border)}@media (min-width:768px){.pane-left{width:18rem;max-height:none;border-bottom:0;border-right:1px solid var(--color-border)}.pane-right{width:20rem;max-height:none;border-top:0;border-left:1px solid var(--color-border)}}.pane-h-full{height:100%}.h-100vh,.h-screen{height:100vh}.overflow-y-auto{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.overflow-y-auto::-webkit-scrollbar{width:8px;height:8px}.overflow-y-auto::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px;border:2px solid transparent;background-clip:content-box}.overflow-y-auto::-webkit-scrollbar-thumb:hover{background:#c2c7d6;background-clip:content-box}.prop-h{font-size:.625rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:0}.prop-card{background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.75rem}.segmented.w-100 .btn{flex:1 1 0}.transition-chevron{transition:transform .15s ease}.rotate-90{transform:rotate(90deg)}.border-dashed{border-style:dashed!important}.outline-dashed{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.project-card{transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.project-card:hover{box-shadow:var(--shadow-lg)!important;transform:translateY(-2px);border-color:var(--color-border-strong)}.auth-bg{background:radial-gradient(60% 50% at 15% 0,rgba(var(--color-accent-rgb),.12) 0,transparent 60%),radial-gradient(50% 50% at 100% 100%,rgba(124,92,237,.1) 0,transparent 55%),var(--color-bg)}