.dashboard{padding-top:var(--spacing-lg)}.dash-header{justify-content:space-between;align-items:flex-end;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.dash-title{letter-spacing:-.5px;font-size:1.75rem;font-weight:900;line-height:1.2}.dash-subtitle{color:var(--color-text-tertiary);margin-top:2px;font-size:.88rem;font-weight:600}.dash-toolbar{z-index:30;justify-content:space-between;align-items:center;gap:var(--spacing-sm) var(--spacing-md);margin:0 calc(-1 * var(--spacing-sm));padding:var(--spacing-sm);background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(10px);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex;position:sticky;top:64px}.dash-controls{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.dash-hint{margin:var(--spacing-xs) 0 var(--spacing-md);color:var(--color-text-tertiary);font-size:.78rem;font-weight:600}.search-box{align-items:center;display:flex;position:relative}.search-box-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:11px}.search-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:260px;height:38px;color:var(--color-text);font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), width var(--transition);padding:0 36px 0 34px;font-size:.86rem;font-weight:500}.search-input::-webkit-search-cancel-button{display:none}.search-input::placeholder{color:var(--color-text-tertiary)}.search-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-glow);outline:none}.search-kbd{pointer-events:none;position:absolute;right:9px}.search-clear{background:var(--color-surface-sunken);color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:6px;padding:5px;display:inline-flex;position:absolute;right:6px}.sort-control{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:center;gap:4px;height:38px;padding:0 4px 0 12px;display:flex}.sort-label{color:var(--color-text-tertiary);font-size:.78rem;font-weight:700}.sort-select{appearance:none;height:30px;color:var(--color-text);font-family:var(--font-sans);cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 6px center no-repeat;border:none;border-radius:6px;padding:0 24px 0 6px;font-size:.84rem;font-weight:700}.sort-select:hover{background-color:var(--color-surface-sunken)}.dash-controls .segmented{align-items:center;height:38px}.category-order-anchor{display:flex;position:relative}.category-order-menu{z-index:60;width:280px;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xl);animation:slideUp .18s var(--ease-out);position:absolute;top:calc(100% + 10px);right:-4px}.category-order-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin:-4px -6px 0 0;display:flex}.category-order-title{font-size:.9rem;font-weight:800}.category-order-hint{margin-bottom:var(--spacing-sm);color:var(--color-text-tertiary);font-size:.76rem;line-height:1.4}.category-order-list{flex-direction:column;gap:4px;display:flex}.category-order-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:center;gap:8px;padding:6px 10px 6px 4px;display:flex}.category-order-row.is-placeholder{opacity:.35}.category-order-row.is-overlay{box-shadow:var(--shadow-lg);border-color:var(--cat)}.category-order-label{flex:1;font-size:.86rem;font-weight:700}.category-order-count{color:var(--color-text-tertiary);font-size:.75rem;font-weight:700}.category-order-reset{margin-top:var(--spacing-sm);color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.category-order-reset:hover:not(:disabled){background:var(--color-primary-lighter)}.category-order-reset:disabled{color:var(--color-text-tertiary);cursor:default}.ctx-section+.ctx-section{margin-top:var(--spacing-xl)}.ctx-section-title{margin-bottom:var(--spacing-md);color:var(--color-text);text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:8px;font-size:.82rem;font-weight:800;display:flex}.ctx-section-title:after{content:"";background:linear-gradient(90deg, var(--color-border), transparent);flex:1;height:1px;margin-left:4px}.ctx-section-count{border-radius:var(--radius-full);background:var(--cat-bg);color:var(--cat-text);padding:0 7px;font-size:.7rem;line-height:18px}.ctx-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));display:grid}.ctx-rows{flex-direction:column;gap:6px;display:flex}.sortable-item{min-width:0}.ctx-grid>.sortable-item{display:flex}.ctx-item{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-xs);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition), opacity var(--transition);position:relative}.ctx-item:hover{border-color:color-mix(in srgb, var(--cat) 45%, var(--color-border));box-shadow:var(--shadow-md)}.ctx-title{min-width:0;font-size:1.02rem;font-weight:800;line-height:1.35}.ctx-open{-webkit-line-clamp:2;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;-webkit-box-orient:vertical;padding:0;display:-webkit-box;overflow:hidden}.ctx-open:after{content:"";border-radius:inherit;position:absolute;inset:0}.ctx-open:focus-visible{outline:none}.ctx-open:focus-visible:after{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary-light)}.ctx-item .drag-handle,.ctx-item .ctx-tag,.ctx-item .ctx-actions{z-index:1;position:relative}.ctx-subtitle{color:var(--color-text-secondary);font-size:.84rem;line-height:1.5}.ctx-tags{flex-wrap:wrap;gap:4px;display:flex}.ctx-tag{border-radius:var(--radius-xs);background:var(--color-tag-bg);color:var(--color-tag-text);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);border:none;padding:1px 8px;font-size:.7rem;font-weight:700;line-height:1.6}button.ctx-tag:hover{background:var(--color-primary);color:var(--color-white)}.ctx-date{color:var(--color-text-tertiary);white-space:nowrap;font-size:.74rem;font-weight:600}.ctx-actions{align-items:center;gap:2px;display:flex}.drag-handle{width:28px;height:32px;color:var(--color-text-tertiary);cursor:grab;touch-action:none;transition:background var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.drag-handle:hover{background:var(--color-surface-sunken);color:var(--color-text)}.drag-handle:active{cursor:grabbing}@media (hover:hover){.ctx-item .drag-handle{opacity:.45}.ctx-item:hover .drag-handle,.ctx-item .drag-handle:focus-visible{opacity:1}}.ctx-item.is-placeholder{opacity:.4;box-shadow:none;border-style:dashed}.ctx-item.is-overlay{border-color:var(--cat);box-shadow:var(--shadow-xl);cursor:grabbing;transform:rotate(-1deg)scale(1.02)}.ctx-item.is-overlay .drag-handle{opacity:1;cursor:grabbing}.ctx-grid .ctx-item{gap:var(--spacing-sm);min-height:196px;padding:18px var(--spacing-lg) var(--spacing-md);border-radius:var(--radius-lg);flex-direction:column;flex:1;display:flex;overflow:hidden}.ctx-grid .ctx-item:before{content:"";background:var(--cat);opacity:.85;height:3px;position:absolute;inset:0 0 auto}.ctx-grid .ctx-item:hover:not(.is-placeholder){transform:translateY(-2px)}.ctx-top{justify-content:space-between;align-items:center;min-height:28px;margin-right:-10px;display:flex}.ctx-grid .ctx-subtitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ctx-grid .ctx-tags{max-height:46px;overflow:hidden}.ctx-footer{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border-light);margin-top:auto;margin-right:-6px;display:flex}.ctx-list{align-items:center;gap:var(--spacing-md);border-radius:var(--radius-md);min-height:60px;padding:8px 10px 8px 14px;display:flex}.ctx-list:has(.drag-handle){padding-left:6px}.ctx-list:before{content:"";background:var(--cat);border-radius:0 3px 3px 0;width:3px;position:absolute;inset:10px auto 10px 0}.ctx-list .category-badge{flex-shrink:0;width:112px}.ctx-main{flex:1;min-width:0}.ctx-list .ctx-title{font-size:.92rem}.ctx-list .ctx-open{-webkit-line-clamp:1}.ctx-list .ctx-subtitle{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.ctx-list .ctx-tags{flex-wrap:nowrap;max-width:220px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.ctx-list .ctx-date{text-align:right;width:88px}.empty-state{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:var(--spacing-2xl) var(--spacing-lg);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--color-surface) 60%, transparent);text-align:center;animation:fadeIn var(--transition-slow) ease;flex-direction:column;display:flex}.empty-state-icon{width:56px;height:56px;margin-bottom:var(--spacing-xs);border-radius:var(--radius-lg);background:var(--cat-bg);color:var(--cat);padding:14px}.empty-state-title{font-size:1.05rem;font-weight:800}.empty-state-text{max-width:380px;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-size:.88rem}.fab{display:none}.drawer-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--transition) ease;background:#0f172a59;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--color-surface);width:min(780px,100%);height:100%;box-shadow:var(--shadow-xl);animation:drawerIn .32s var(--ease-out);transition:width .26s var(--ease-out);outline:none;flex-direction:column;display:flex}.drawer.expanded{width:100%}@keyframes drawerIn{0%{opacity:0;transform:translate(48px)}}.drawer-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);border-bottom:1px solid var(--color-border-light);border-top:3px solid var(--cat);display:flex}.drawer-nav,.drawer-toolbar-actions{align-items:center;gap:2px;display:flex}.drawer-position{min-width:64px;color:var(--color-text-tertiary);text-align:center;font-size:.78rem;font-weight:700}.drawer-scroll{overscroll-behavior:contain;flex:1;overflow-y:auto}.drawer-content{max-width:820px;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-2xl);margin:0 auto}.drawer-header{align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.drawer-title{letter-spacing:-.4px;overflow-wrap:anywhere;font-size:1.7rem;font-weight:900;line-height:1.25}.drawer-subtitle{color:var(--color-text-secondary);margin-top:-4px;font-size:.95rem}.drawer-meta{color:var(--color-text-tertiary);flex-wrap:wrap;gap:4px;font-size:.78rem;font-weight:600;display:flex}.drawer-actions{align-items:center;gap:var(--spacing-sm);width:100%;margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.drawer-actions-spacer{flex:1}.drawer-body{font-size:.95rem;line-height:1.8}.drawer-preview-note{margin:0 0 var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-text-secondary);border-radius:10px;font-size:.85rem}.drawer-more{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);flex-direction:column;display:flex}.drawer-preview-error{color:var(--color-danger);margin:0;font-size:.85rem}@media (max-width:900px){.dash-toolbar{flex-direction:column;align-items:stretch}.dash-controls{flex-wrap:nowrap}.search-box{flex:1}.search-input{width:100%}.ctx-list .ctx-tags{display:none}}@media (max-width:640px){.dashboard{padding-top:var(--spacing-md);padding-bottom:96px}.dash-header{margin-bottom:var(--spacing-sm)}.dash-title{font-size:1.4rem}.dash-new{display:none}.dash-toolbar{gap:var(--spacing-sm);top:56px}.filter-tabs{width:100%}.dash-controls{flex-wrap:wrap}.search-box{flex-basis:100%}.search-kbd{display:none}.sort-control,.sort-select{flex:1}.category-order-backdrop{z-index:120;animation:fadeIn var(--transition) ease;background:#0f172a73;align-items:flex-end;display:flex;position:fixed;inset:0}.category-order-menu.is-sheet{width:100%;max-height:85vh;padding:var(--spacing-lg) var(--spacing-md) calc(var(--spacing-lg) + env(safe-area-inset-bottom,0px));border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:sheetUp .26s var(--ease-out);border:none;position:static;overflow-y:auto}.category-order-menu.is-sheet .category-order-title{font-size:1.05rem}.category-order-menu.is-sheet .category-order-hint{margin-bottom:var(--spacing-md);font-size:.85rem}.category-order-menu.is-sheet .category-order-row{padding:10px 14px 10px 6px}.category-order-menu.is-sheet .category-order-label{font-size:.95rem}@keyframes sheetUp{0%{transform:translateY(100%)}}.ctx-grid{gap:var(--spacing-sm)}.ctx-grid .ctx-item{min-height:0;padding:16px var(--spacing-md) 12px}.ctx-list{gap:10px;padding-right:8px}.ctx-list .category-badge,.ctx-list .ctx-date,.ctx-list .ctx-actions .icon-btn,.ctx-list .copy-btn span{display:none}.fab{right:var(--spacing-md);bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px));z-index:35;background:var(--color-primary);width:56px;height:56px;color:var(--color-white);box-shadow:0 10px 24px -6px #1e3a5f8c, var(--shadow-md);cursor:pointer;transition:transform var(--transition-fast);border:none;border-radius:18px;justify-content:center;align-items:center;display:inline-flex;position:fixed}.fab:active{transform:scale(.94)}.toaster{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.drawer-overlay{background:0 0}.drawer,.drawer.expanded{width:100%;animation-name:drawerUp}@keyframes drawerUp{0%{opacity:0;transform:translateY(32px)}}.drawer-toolbar{padding:8px var(--spacing-sm);padding-top:calc(8px + env(safe-area-inset-top,0px))}.drawer-content{padding:var(--spacing-lg) var(--spacing-md) var(--spacing-2xl)}.drawer-title{font-size:1.35rem}.drawer-actions .btn-primary{flex:1}.drawer-actions-spacer{display:none}.drawer-body{font-size:.9rem}}
