:root{--font-thai:"Noto Sans Thai", "Segoe UI", system-ui, sans-serif;--background:#f6f8fb;--surface:#fff;--surface-low:#f3f3f3;--surface-mid:#eee;--surface-high:#e8e8e8;--surface-highest:#e2e2e2;--on-surface:#1a1c1c;--on-variant:#424656;--outline:#737687;--outline-variant:#c3c6d8;--primary:#1646b8;--primary-strong:#0f62fe;--on-primary:#fff;--secondary:#0f766e;--secondary-container:#ccfbf1;--tertiary:#b45309;--tertiary-container:#fef3c7;--error:#b91c1c;--error-container:#fee2e2;--success:#047857;--success-container:#d1fae5;--info:#1d4ed8;--info-container:#dbeafe;--warning:#b45309;--warning-container:#fef3c7;--danger:#b91c1c;--danger-container:#fee2e2;--radius:4px;--radius-sm:2px;--shadow-soft:0 2px 4px #00000014;--bottom-nav-height:76px;font-family:var(--font-thai);color:var(--on-surface);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,button,input,select,textarea{letter-spacing:0}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{min-height:100vh;padding:64px 16px calc(var(--bottom-nav-height) + 18px);background:var(--background)}.top-app-bar{z-index:30;border-bottom:1px solid var(--outline-variant);background:var(--surface);justify-content:space-between;align-items:center;height:64px;padding:0 16px;display:flex;position:fixed;inset:0 0 auto}.top-title{align-items:center;gap:12px;min-width:0;display:flex}.top-title h1{color:var(--primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:24px;font-weight:700;line-height:1.15;overflow:hidden}.top-title p{color:var(--on-variant);margin:2px 0 0;font-size:12px;line-height:1.2;display:none}.avatar-mark,.icon-button,.hero-icon,.activity-icon{flex:none;place-items:center;display:grid}.avatar-mark{border:1px solid var(--outline-variant);border-radius:var(--radius);width:42px;height:42px;color:var(--primary);background:var(--surface);padding:5px}.brand-mark{object-fit:contain;width:30px;height:30px}.icon-button{border-radius:var(--radius);width:48px;height:48px;color:var(--primary);background:0 0;border:0}.icon-button:hover{background:var(--surface-high)}.icon-button.small{width:36px;height:36px}.desktop-rail{display:none}.content{max-width:1220px;margin:0 auto}.page{gap:16px;padding:16px 0 0;display:grid}.mobile-page-title{gap:2px;display:grid}.mobile-page-title h2{color:var(--on-surface);margin:0;font-size:22px;font-weight:700;line-height:1.2}.mobile-page-title p{color:var(--on-variant);margin:0;font-size:14px}.bottom-nav{z-index:35;min-height:var(--bottom-nav-height);border-top:1px solid var(--outline-variant);padding:8px 8px max(8px, env(safe-area-inset-bottom));background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0}.bottom-nav a{border-radius:var(--radius);min-width:0;min-height:56px;color:var(--on-variant);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.bottom-nav a.active,.bottom-nav a:hover{color:#155252;background:var(--secondary-container)}.bento-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.bento-card,.section-block,.step-card,.detail-card,.ticket-hero,.ticket-card,.activity-card,.empty-card,.desktop-table{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface);position:relative;overflow:hidden}.bento-card{flex-direction:column;justify-content:space-between;min-height:136px;padding:16px;display:flex}.bento-main{grid-column:1/-1;min-height:196px;padding:24px}.bento-head{color:var(--on-variant);justify-content:space-between;align-items:flex-start;gap:12px;font-size:16px;display:flex}.bento-head.compact{font-size:13px;font-weight:600}.bento-card strong{color:#111;font-size:42px;font-weight:700;line-height:1}.bento-main strong{font-size:78px}.bento-card small{color:var(--on-variant);font-size:13px}.section-block,.detail-card{padding:16px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-head h2,.detail-card h2,.step-card h2{color:var(--on-surface);margin:0;font-size:18px;font-weight:700;line-height:1.25}.text-action{border:1px solid var(--outline-variant);border-radius:var(--radius);min-height:36px;color:var(--primary);background:var(--surface-low);align-items:center;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.activity-list,.ticket-card-list,.step-form,.timeline{gap:16px;display:grid}.activity-card{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:96px;padding:16px 16px 16px 20px;display:grid}.activity-card:before,.ticket-card:before,.ticket-hero:before,.selected-asset:before,.bento-card:before{content:"";background:var(--primary);width:4px;position:absolute;inset:0 auto 0 0}.activity-icon{border-radius:var(--radius);color:#155252;background:var(--secondary-container);width:42px;height:42px}.activity-body{min-width:0}.activity-body strong,.ticket-card strong,.selected-asset strong{color:var(--on-surface);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;line-height:1.28;display:block;overflow:hidden}.activity-body span,.ticket-card p,.ticket-meta,.selected-asset span{color:var(--on-variant);font-size:13px;line-height:1.4}.activity-card time{color:var(--on-variant);white-space:nowrap;font-size:13px;font-weight:600}.step-card{gap:16px;padding:16px;display:grid}.step-card h2{align-items:center;gap:10px;font-size:22px;display:flex}.step-card h2 span{border-radius:var(--radius);width:40px;height:40px;color:var(--on-primary);background:var(--primary-strong);place-items:center;font-size:16px;display:inline-grid}.field-grid{gap:14px;display:grid}label{color:var(--on-variant);gap:6px;font-size:14px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--outline-variant);border-radius:var(--radius);width:100%;min-height:48px;color:var(--on-surface);background:var(--surface);padding:12px 14px;font-size:16px}textarea{resize:vertical;min-height:128px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid #dbe1ff}.search-field{border:1px solid var(--outline);border-radius:var(--radius-sm);min-height:48px;color:var(--outline);background:var(--surface-low);align-items:center;gap:10px;padding:0 12px;display:flex}.search-field:focus-within{border-color:var(--primary);outline:2px solid #dbe1ff}.search-field input{background:0 0;border:0;outline:0;min-height:46px;padding:0}.asset-results{gap:8px;display:grid}.asset-results button{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-low);text-align:left;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;min-height:58px;padding:10px 12px;display:grid}.asset-results strong{color:var(--primary);font-weight:700}.asset-results span{color:var(--on-surface);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}.asset-results small{color:var(--on-variant)}.asset-step-actions{justify-content:flex-start;display:flex}.asset-empty-hint{border:1px dashed var(--outline-variant);border-radius:var(--radius);min-height:58px;color:var(--on-variant);background:#fbfcff;justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:14px;font-weight:700;display:flex}.asset-empty-hint button{border:1px solid var(--primary);border-radius:var(--radius);min-height:38px;color:var(--primary);background:var(--info-container);flex:none;padding:0 12px;font-weight:700}.asset-create-panel{border-radius:var(--radius);background:linear-gradient(#fbfcff 0%,#f3f7ff 100%);border:1px solid #9bb7ff;gap:16px;padding:16px;display:grid}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-head strong,.panel-head span{display:block}.panel-head strong{color:var(--on-surface);font-size:18px;line-height:1.2}.panel-head span{color:var(--on-variant);margin-top:3px;font-size:13px}.field-grid.compact{gap:12px}.asset-create-panel textarea{min-height:96px}.checkbox-stack{align-content:end;gap:10px;min-height:48px;display:grid}.checkbox-row{min-height:32px;color:var(--on-surface);align-items:center;gap:10px;font-weight:700;display:flex}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--primary);margin:0;padding:0}.selected-asset{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-low);grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 12px 12px 18px;display:grid;position:relative;overflow:hidden}.selected-asset p{color:var(--tertiary);grid-column:1/-1;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.priority-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.priority-grid button,.button{border:1px solid var(--outline-variant);border-radius:var(--radius);min-height:48px;color:var(--on-surface);background:var(--surface);justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:15px;font-weight:700;display:inline-flex}.button.secondary{color:var(--primary);background:var(--info-container);border-color:#9bb7ff}.button.secondary:hover{border-color:var(--primary);background:#c7d8ff}.button.ghost{color:var(--on-variant);background:var(--surface)}.button.ghost:hover{border-color:var(--outline);background:var(--surface-low)}.form-actions{flex-wrap:wrap;gap:10px;display:flex}.priority-grid .priority-option-low{color:var(--success);background:var(--success-container);border-color:#5eead4}.priority-grid .priority-option-medium{color:var(--info);background:var(--info-container);border-color:#93c5fd}.priority-grid .priority-option-high{color:var(--warning);background:var(--warning-container);border-color:#fbbf24}.priority-grid .priority-option-urgent{color:var(--danger);background:var(--danger-container);border-color:#fca5a5}.priority-grid .priority-option.selected,.priority-grid .priority-option:hover{filter:saturate(1.08);box-shadow:inset 0 0 0 2px,0 8px 18px #0f172a14}.button.primary{border-color:var(--primary);color:var(--on-primary);background:var(--primary)}.button.primary:hover{background:var(--primary-strong)}.button:disabled{opacity:.6;cursor:not-allowed}.submit-dock{bottom:calc(var(--bottom-nav-height) + 8px);z-index:12;margin:4px -16px calc(-1 * (var(--bottom-nav-height) - 8px));border-top:1px solid var(--outline-variant);background:var(--surface);padding:16px;position:sticky}.submit-dock .button{width:100%}.success-panel{border:1px solid var(--outline-variant);border-radius:var(--radius);min-height:360px;color:var(--secondary);background:var(--surface);text-align:center;place-items:center;gap:10px;padding:24px;display:grid}.success-panel strong{color:var(--on-surface);font-size:34px;line-height:1}.form-error{color:var(--error);margin:0;font-weight:700}.empty-card{min-height:132px;color:var(--on-variant);text-align:center;background:linear-gradient(#fff 0%,#f2f6ff 100%);border-style:dashed;place-items:center;margin:0;padding:24px;font-weight:700;display:grid}.filter-bar{gap:10px;display:grid}.ticket-card-list{gap:16px;display:grid}.ticket-card{gap:10px;padding:16px 16px 16px 20px;display:grid}.ticket-card-head,.ticket-meta,.hero-head,.detail-stats{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ticket-card-head>span{color:var(--outline);font-size:13px;font-weight:700}.ticket-meta{align-items:center}.ticket-meta.muted{color:var(--on-variant);font-size:13px}.desktop-table{padding:0;display:none}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--outline-variant);text-align:left;vertical-align:middle;padding:12px}th{color:var(--on-variant);background:var(--surface-low);font-size:12px;font-weight:700}td{color:var(--on-variant);font-size:14px}td strong,td a{color:var(--on-surface);font-weight:700}td span{color:var(--on-variant);font-size:12px;display:block}.badge{border-radius:var(--radius);white-space:nowrap;align-items:center;width:fit-content;min-height:26px;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.status-new{color:var(--on-primary);background:var(--primary-strong)}.status-verified,.status-done,.usage-active{color:var(--success);background:var(--success-container)}.status-repairing,.status-waiting_parts{color:var(--warning);background:var(--warning-container)}.status-closed,.usage-unknown{color:var(--on-surface);background:var(--surface-high)}.priority-low{color:var(--success);background:var(--success-container)}.priority-medium{color:var(--info);background:var(--info-container)}.priority-high{color:var(--warning);background:var(--warning-container)}.status-cancelled,.priority-urgent,.usage-inactive{color:var(--danger);background:var(--danger-container)}.ticket-hero{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:16px 16px 16px 20px;display:grid}.hero-icon{border:1px solid var(--outline-variant);border-radius:var(--radius);width:72px;height:72px;color:var(--primary);background:var(--surface-low)}.hero-head{align-items:flex-start;margin-bottom:8px}.hero-head h2{color:var(--on-surface);margin:0;font-size:20px;line-height:1.22}.ticket-hero p{color:var(--on-variant);align-items:center;gap:6px;margin:0 0 6px;font-size:15px;display:flex}.ticket-hero span{color:var(--outline);font-size:13px;font-weight:700}.detail-card{gap:14px;display:grid}.detail-card h2{align-items:center;gap:10px;display:flex}.detail-card p{color:var(--on-variant);margin:0;font-size:16px;line-height:1.75}.detail-stats{gap:10px;display:grid}.detail-stats div{border-top:1px solid var(--outline-variant);gap:4px;padding-top:10px;display:grid}.detail-stats span{color:var(--outline);font-size:12px;font-weight:700}.detail-stats strong{color:var(--on-surface);font-size:14px}.update-card .button{width:100%}.timeline{border-left:2px solid var(--surface-highest);gap:22px;margin-left:8px;padding-left:24px;position:relative}.timeline-item{gap:4px;display:grid;position:relative}.timeline-dot{border:3px solid var(--surface);background:var(--surface-highest);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:-31px}.timeline-item.current .timeline-dot{background:var(--secondary)}.timeline-item strong{color:var(--on-surface);font-size:16px}.timeline-item time{color:var(--outline);font-size:13px;font-weight:700}.timeline-item p{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-low);padding:10px;font-size:14px;line-height:1.55}.rail-primary:before{background:var(--primary-strong)}.rail-teal:before{background:var(--secondary)}.rail-warning:before{background:var(--warning)}.rail-danger:before{background:var(--danger)}@media (width>=768px){.app-shell{padding:80px 24px 24px}.top-app-bar{height:72px;padding:0 24px}.top-title p{display:block}.bento-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bento-main{grid-column:span 2}.field-grid,.filter-bar,.detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.priority-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.wide{grid-column:1/-1}.ticket-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.submit-dock{background:0 0;border:0;margin:0;padding:0;position:static}.submit-dock .button,.update-card .button{justify-self:start;width:auto}.detail-page{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.ticket-hero,.detail-page>.detail-card:not(.update-card){grid-column:1}.update-card{grid-area:1/2/span 3}}@media (width>=1080px){.app-shell{grid-template-rows:72px minmax(0,1fr);grid-template-columns:248px minmax(0,1fr);gap:0;padding:0;display:grid}.bottom-nav{display:none}.top-app-bar{grid-area:1/2;height:72px;padding:0 32px;position:sticky;inset:auto}.desktop-rail{border-right:1px solid var(--outline-variant);background:var(--surface);flex-direction:column;grid-area:1/1/span 2;gap:24px;min-height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.rail-brand{align-items:center;gap:12px;display:flex}.rail-brand strong,.rail-brand span{display:block}.rail-brand strong{color:var(--primary);font-size:16px}.rail-brand span{color:var(--on-variant);font-size:12px}.rail-nav{gap:8px;display:grid}.rail-nav a{border-radius:var(--radius);min-height:48px;color:var(--on-variant);align-items:center;gap:10px;padding:0 12px;font-weight:700;display:flex}.rail-nav a.active,.rail-nav a:hover{color:#155252;background:var(--secondary-container)}.content{grid-area:2/2;width:100%;max-width:none;padding:24px 32px}.page{gap:24px;max-width:1320px;padding:0}.mobile-page-title,.ticket-card-list{display:none}.desktop-table{display:block;overflow-x:auto}.desktop-table table{min-width:920px}.step-form{max-width:860px}}
