@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{color:#102522;font-synthesis:none;text-rendering:optimizelegibility;--bg:#f7faf9;--bg-strong:#ecf7f4;--panel:#fff;--panel-soft:#f1f7f6;--text:#102522;--muted:#64736f;--faint:#8a9894;--line:#d8e5e1;--line-strong:#bfd3cd;--accent:#0d9488;--accent-strong:#0f766e;--accent-soft:#d7f4ee;--action:#f97316;--action-strong:#c85a10;--danger:#b42318;--danger-soft:#fff1f0;--shadow:0 18px 55px #1025221a;--shadow-soft:0 10px 24px #1025220f;--radius:8px;background:#f7faf9;font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px;min-height:100%}body{background:linear-gradient(135deg, #0d948817, #f973160b 42%, transparent 72%), var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.loading,.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.loading{color:var(--muted);font-weight:700}.login-panel{border-radius:var(--radius);width:min(100%,420px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border:1px solid #d8e5e1e6;gap:18px;padding:28px;display:grid}.login-heading,.brand-lockup{align-items:center;gap:14px;display:flex}.login-mark,.app-mark{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg, var(--accent), #0b665f);flex:none;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 12px 28px #0d948838}.app-mark{width:42px;height:42px}.login-panel h1,.topbar h1,.panel-header h2,.detail-header h2{letter-spacing:0;margin:0}.login-panel h1{font-size:25px;line-height:1.12}.login-heading p{color:var(--muted);margin:5px 0 0;font-size:13px;line-height:1.45}.login-panel label,.modal-form label{color:var(--muted);gap:7px;font-size:13px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--text);background:#fff;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}input,select{height:40px;padding:0 12px}textarea{resize:vertical;min-height:132px;padding:12px}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus,button:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0d948824}.form-error{color:var(--danger);margin:0;font-size:13px;font-weight:700}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe6;border-bottom:1px solid #d8e5e1d9;justify-content:space-between;align-items:center;gap:20px;min-height:76px;padding:16px 24px;display:flex}.topbar h1{font-size:22px;line-height:1.15}.topbar p,.detail-header p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45}.topbar-actions,.row-actions{align-items:center;gap:8px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.notice,.user-chip{border-radius:var(--radius);align-items:center;min-height:34px;font-size:13px;font-weight:800;display:inline-flex}.notice{color:var(--accent-strong);background:var(--accent-soft);padding:0 11px}.user-chip{color:#40514d;border:1px solid var(--line);background:#fff;padding:0 10px}.workspace{grid-template-columns:224px minmax(0,1fr);min-height:0;display:grid}.rail{background:#eff8f6e6;border-right:1px solid #d8e5e1f2;align-content:start;gap:8px;padding:18px 14px;display:grid}.rail button,.section-list>button,.section-row>button{text-align:left;background:0 0;border:0;width:100%}.rail button{border-radius:var(--radius);color:#344844;border:1px solid #0000;align-items:center;gap:11px;min-height:58px;padding:10px 11px;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;display:flex}.rail button:hover{border-color:var(--line);background:#ffffffad}.rail button.active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-strong));box-shadow:0 10px 24px #0d94882e}.tab-label{gap:3px;min-width:0;display:grid}.tab-label strong,.tab-label small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tab-label strong{font-size:14px;font-weight:800}.tab-label small{color:currentColor;opacity:.72;font-size:11px;font-weight:700}.content-grid{grid-template-columns:320px minmax(0,1fr);min-width:0;min-height:0;display:grid}.side-panel{background:#ffffffd1;border-right:1px solid #d8e5e1f2;flex-direction:column;gap:16px;min-height:0;padding:20px;display:flex}.panel-header,.detail-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-header.stacked{flex-direction:column;align-items:stretch}.panel-header.stacked>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-actions,.header-command-group,.panel-title-row{align-items:center;gap:8px;display:flex}.panel-actions,.header-command-group{flex-wrap:wrap}.header-command-group{justify-content:flex-end}.panel-title-row{justify-content:space-between}.panel-header h2,.detail-header h2{color:var(--text);font-size:20px;line-height:1.2}.panel-header span{border-radius:var(--radius);min-width:30px;height:26px;color:var(--accent-strong);background:var(--accent-soft);place-items:center;font-size:12px;font-weight:800;display:grid}.panel-header button span{min-width:0;height:auto;color:inherit;font-size:inherit;font-weight:inherit;background:0 0;display:inline}.section-list{flex:auto;align-content:start;gap:7px;min-height:0;padding-right:2px;display:grid;overflow:auto}.section-list>button,.section-row{border-radius:var(--radius);color:var(--text);border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 10px;transition:background .18s,border-color .18s,box-shadow .18s;display:grid}.section-row{padding:5px 6px 5px 10px}.section-row>button{min-width:0;color:var(--text);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:7px 0;display:grid}.section-list>button:hover,.section-row:hover{border-color:var(--line);background:#fff}.section-list>button.selected,.section-row.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);border-color:#0d94883d}.section-list span,.section-row span{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.section-list small,.section-row small{color:var(--muted);font-size:12px;font-weight:700}.detail-panel{grid-template-rows:auto auto 1fr;gap:16px;min-width:0;min-height:0;padding:22px;display:grid;overflow:auto}.detail-header{border-radius:var(--radius);min-height:58px;box-shadow:var(--shadow-soft);background:#ffffffdb;border:1px solid #d8e5e1db;padding:16px 18px}.search-field{border-radius:var(--radius);min-height:46px;color:var(--muted);box-shadow:var(--shadow-soft);background:#ffffffd1;border:1px solid #d8e5e1e6;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:9px;padding:0 12px;display:grid}.search-field span{color:#40514d;white-space:nowrap;font-size:13px;font-weight:800}.search-field input{height:34px;box-shadow:none;background:0 0;border:0;padding:0}.search-field input:focus{box-shadow:none}.compact-search{min-height:40px;box-shadow:none;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:0 10px}.compact-search span{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.quick-form,.add-item-form,.optimizer-form{gap:10px;display:grid}.quick-form{grid-template-columns:minmax(0,1fr) 40px}.add-item-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);grid-template-columns:180px minmax(220px,1fr) 220px auto;align-items:center;padding:14px}.optimizer-form{border-top:1px solid var(--line);padding-top:12px}.table-wrap{border-radius:var(--radius);background:var(--panel);min-height:0;box-shadow:var(--shadow-soft);border:1px solid #d8e5e1eb;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--line);vertical-align:top;padding:13px 14px}th{z-index:1;color:#53635f;text-align:left;background:#f3f8f6;font-size:12px;font-weight:800;position:sticky;top:0}td{color:#263935;font-size:14px;line-height:1.55}tbody tr{transition:background .14s}tbody tr:hover{background:#fbfdfc}td strong,td small{display:block}td strong{color:var(--text);font-size:14px;font-weight:800}td small{color:var(--muted);margin-top:5px;font-size:12px}.clip-content{white-space:pre-wrap;overflow-wrap:anywhere;max-width:560px}.item-actions{justify-content:flex-end}.move-select{flex:0 0 190px;width:190px}.primary-button,.icon-button,.icon-only{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:800;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex}.primary-button{color:#fff;background:var(--accent);min-height:40px;padding:0 14px;box-shadow:0 8px 18px #0d948829}.primary-button:hover,.rail button.active:hover{background:var(--accent-strong)}.primary-button:disabled{opacity:.65;box-shadow:none}.primary-button.compact{min-height:34px;box-shadow:none;padding:0 12px}.copy-button{background:var(--action)}.copy-button:hover{background:var(--action-strong)}.icon-button{color:#263935;border-color:var(--line);background:#fff;min-height:38px;padding:0 12px}.icon-button.compact{min-height:34px}.icon-button:hover,.icon-only:hover{border-color:var(--line-strong);background:#f8fbfa}.icon-only{color:#263935;border-color:var(--line);background:#fff;width:38px;height:38px}.icon-only:disabled{opacity:.42}.danger{color:var(--danger)}.danger:hover{background:var(--danger-soft);border-color:#ffd4cf}.hidden-input{display:none}.empty{color:var(--muted);text-align:center;padding:28px;font-weight:700}.small-empty{padding:14px 10px;font-size:13px}.empty.fill{border:1px dashed var(--line-strong);border-radius:var(--radius);background:#ffffffa3;place-items:center;min-height:320px;display:grid}.segmented{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft);grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented button{height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:800;transition:background .18s,color .18s,box-shadow .18s}.segmented button.selected{color:var(--text);background:#fff;box-shadow:0 4px 10px #10252212}.optimizer-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.optimizer-layout section{border-radius:var(--radius);min-width:0;box-shadow:var(--shadow-soft);background:#ffffffe6;border:1px solid #d8e5e1eb;align-content:start;gap:10px;padding:16px;display:grid}.optimizer-layout section:last-child{grid-column:1/-1}.memo-list>button{grid-template-columns:minmax(0,1fr)}.memo-detail-panel{grid-template-rows:auto 1fr}.memo-reader{border-radius:var(--radius);min-height:0;box-shadow:var(--shadow-soft);background:#ffffffe6;border:1px solid #d8e5e1eb;align-content:start;gap:12px;padding:18px;display:grid;overflow:auto}.memo-reader-paragraph,.memo-paragraph-preview{border-radius:var(--radius);color:#203530;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;margin:0}.memo-reader-paragraph{padding:13px 14px;font-size:15px;line-height:1.76}.memo-copyable-text,.editor-toolbar span{color:var(--action-strong);font-weight:800}.memo-copyable-text{min-height:0;font-size:inherit;line-height:inherit;text-align:inherit;vertical-align:baseline;background:#fff4e8;border:1px solid #f9731659;border-radius:6px;padding:2px 5px;display:inline;box-shadow:inset 0 -2px #f9731633}.memo-copyable-text:hover{background:#ffead7;border-color:#c85a1080}.memo-copyable-text.preview{cursor:default}.editor-toolbar span{font-size:12px}.editor-shell{grid-template-columns:minmax(0,1fr) 360px;gap:16px;min-width:0;min-height:0;padding:22px;display:grid;overflow:auto}.editor-panel,.editor-preview{align-content:start;gap:14px;min-width:0;display:grid}.editor-title-field{color:var(--muted);gap:7px;font-size:13px;font-weight:800;display:grid}.editor-toolbar{border-radius:var(--radius);box-shadow:var(--shadow-soft);background:#ffffffdb;border:1px solid #d8e5e1eb;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.memo-editor-textarea{min-height:520px;line-height:1.72}.editor-preview{border-radius:var(--radius);box-shadow:var(--shadow-soft);background:#ffffffe6;border:1px solid #d8e5e1eb;padding:16px}.editor-preview h3{color:#263935;margin:0;font-size:14px;font-weight:800}.memo-paragraphs{gap:10px;display:grid}.memo-paragraphs.compact{max-height:calc(100vh - 190px);padding-right:2px;overflow:auto}.memo-paragraph-preview{border-color:var(--line);background:#fff;padding:12px;font-size:13px;line-height:1.68}.marked-range-list{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.marked-range-row{border-radius:var(--radius);color:#203530;text-align:left;background:#fff8f1;border:1px solid #f9731647;gap:5px;width:100%;padding:10px;display:grid}.marked-range-row:hover{background:#fff4e8;border-color:#c85a1073}.marked-range-row span{color:var(--danger);font-size:12px;font-weight:800}.marked-range-row strong{overflow-wrap:anywhere;font-size:13px;line-height:1.5}.optimizer-layout h3{color:#263935;margin:0;font-size:14px;font-weight:800}pre{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:var(--radius);color:#203530;background:#f6faf8;border:1px solid #dce8e4;min-height:132px;max-height:340px;margin:0;padding:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.58;overflow:auto}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10252261;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-panel{border-radius:var(--radius);background:var(--panel);width:min(100%,580px);max-height:min(760px,100vh - 48px);box-shadow:var(--shadow);border:1px solid #d8e5e1f0;gap:18px;padding:20px;display:grid;overflow:auto}.modal-header,.modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header h2{color:var(--text);margin:0;font-size:20px;line-height:1.2}.modal-form{gap:14px;display:grid}.modal-form label input,.modal-form label select,.modal-form label textarea{color:var(--text);font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=1100px){.workspace,.content-grid,.optimizer-layout,.editor-shell{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr))}.side-panel{border-right:0;border-bottom:1px solid var(--line)}.section-list{max-height:260px}.optimizer-layout section:last-child{grid-column:auto}.memo-paragraphs.compact{max-height:280px}.add-item-form{grid-template-columns:1fr}}@media (width<=720px){body{background:var(--bg)}.topbar{flex-direction:column;align-items:stretch;padding:14px}.topbar-actions{justify-content:flex-start}.topbar-actions .icon-button,.topbar-actions .user-chip,.topbar-actions .notice{flex:auto}.workspace{display:block}.rail{gap:8px;padding:10px 12px;display:flex;overflow-x:auto}.rail button{min-width:178px}.editor-toolbar{flex-direction:column;align-items:stretch}.editor-toolbar .icon-button,.editor-panel .detail-header .primary-button,.editor-panel .detail-header .icon-button{width:100%}.memo-editor-textarea{min-height:360px}.content-grid{display:block}.side-panel,.detail-panel,.editor-shell{padding:14px}.detail-header,.panel-header,.modal-actions{flex-direction:column;align-items:stretch}.detail-header .row-actions,.header-command-group,.modal-actions .icon-button,.modal-actions .primary-button{width:100%}.header-command-group .icon-button,.header-command-group .primary-button{flex:150px}.row-actions{flex-wrap:wrap}table,thead,tbody,tr,th,td{display:block}table{min-width:0}thead{display:none}tbody tr{border-bottom:1px solid var(--line);gap:0;padding:12px;display:grid}tbody tr:last-child{border-bottom:0}td{border-bottom:0;gap:7px;padding:10px 0;display:grid}td:before{color:var(--muted);font-size:12px;font-weight:800}td:first-child:before{content:"項目名稱"}td:nth-child(2):before{content:"項目內容"}td:nth-child(3):before{content:"操作"}td .row-actions{justify-content:flex-start}.item-actions{grid-template-columns:repeat(3,auto) minmax(0,1fr);justify-content:stretch;align-items:center;display:grid}.item-actions .copy-button{grid-column:1/-1}.move-select{flex-basis:auto;grid-column:1/-1;width:100%}.clip-content{max-width:none}.primary-button,.icon-button{min-height:42px}.login-panel{padding:22px}.login-heading{flex-direction:column;align-items:flex-start}}@media (width<=460px){.brand-lockup{align-items:flex-start}.app-mark{width:38px;height:38px}.topbar-actions .icon-button{justify-content:center;width:100%}.section-row{grid-template-columns:1fr;align-items:stretch}.section-row .row-actions{justify-content:flex-end}}
