:root{--primary:#1976d2;--border:#e0e0e0;--bg:#f5f6f8;--text:#222;--muted:#777}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted);font-size:12px}.error{color:#c62828}.center{display:flex;align-items:center;justify-content:center;min-height:60vh}button{cursor:pointer;font:inherit}button.link{background:none;border:none;color:var(--primary);padding:0}.btn-primary,button.primary{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:8px 18px}button.primary:disabled{background:#aaa}button.ghost{background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 14px}.field input[type=file]::-webkit-file-upload-button{cursor:pointer;font:inherit;margin-right:12px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 14px}.field input[type=file]::file-selector-button{cursor:pointer;font:inherit;margin-right:12px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 14px}.field input[type=file]::-webkit-file-upload-button:hover{background:#f5f5f5}.field input[type=file]::file-selector-button:hover{background:#f5f5f5}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{justify-content:space-between;background:#fff;border-bottom:1px solid var(--border);padding:10px 20px}.topbar,.topbar .brand a{display:flex;align-items:center}.topbar .brand a{gap:10px;font-weight:700;color:var(--text);font-size:16px}.topbar .brand-logo{height:1.6em;width:auto;display:block}.topbar .user{display:flex;gap:12px;align-items:center}.topbar .roles{font-size:12px;color:var(--muted)}.body{display:flex;flex:1 1}.sidenav{width:220px;background:#fff;border-right:1px solid var(--border);padding:16px 0}.sidenav ul{list-style:none;margin:0;padding:0}.sidenav li{padding:6px 20px}.sidenav li.section{font-size:11px;color:var(--muted);margin-top:12px;text-transform:uppercase}.content{flex:1 1;padding:24px 32px;max-width:1100px}.field{margin-bottom:16px}.field label{display:block;font-weight:600;margin-bottom:4px}.req{color:#c62828}.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea{width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;font:inherit}.field textarea{min-height:120px;resize:vertical}.field.invalid input:not([type=checkbox]):not([type=radio]):not([type=file]),.field.invalid select,.field.invalid textarea{border-color:#c62828;background:#fff5f5}.field.invalid input:focus,.field.invalid select:focus,.field.invalid textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(198,40,40,.15)}.field .field-error{color:#c62828;font-size:12px;margin-top:4px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}table.grid{width:100%;border-collapse:collapse;background:#fff}table.grid td,table.grid th{border-bottom:1px solid var(--border);padding:10px;text-align:left;vertical-align:middle}table.grid th{background:#fafafa;font-size:12px;color:var(--muted)}table.grid th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}table.grid th.sortable:hover{background:#f0f0f0;color:var(--primary)}table.grid th .sort-ind{display:inline-block;width:1em;margin-left:4px;font-size:10px;color:var(--primary)}table.grid td select{padding:8px;border:1px solid var(--border);border-radius:6px;font:inherit;max-width:240px}.unread{background:#c62828;color:#fff;border-radius:10px;padding:0 8px;font-size:12px}.card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:16px}.header-grid{display:grid;grid-template-columns:140px 1fr;grid-gap:6px 16px;gap:6px 16px}.header-grid dt{color:var(--muted)}.header-grid select{padding:8px;border:1px solid var(--border);border-radius:6px;font:inherit;max-width:240px}.metrics{display:flex;gap:16px;flex-wrap:wrap}.metric{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 24px;min-width:160px}.metric .num{font-size:28px;font-weight:700;color:var(--primary)}.thread{flex-direction:column;gap:12px;margin:16px 0}.bubble-row,.thread{display:flex}.bubble-row.right{justify-content:flex-end}.bubble{max-width:70%;border-radius:10px;padding:10px 14px}.bubble.requester{background:#e3f2fd}.bubble.staff{background:#f1f8e9}.bubble-meta{font-size:12px;margin-bottom:4px}.bubble-body{white-space:pre-wrap}.bubble-actions{margin-left:6px;display:inline-flex;gap:2px;vertical-align:middle}.icon-btn{background:none;border:none;padding:0 2px;cursor:pointer;font-size:12px;line-height:1;opacity:.6}.icon-btn:hover{opacity:1}.icon-btn:disabled{opacity:.3;cursor:default}.bubble-edit textarea{width:100%;min-height:80px;box-sizing:border-box}.bubble-edit .row{gap:8px;margin-top:6px}.bubble.bubble-deleted{background:#f3f4f6}.inline-image{display:block;max-width:100%;max-height:480px;margin:6px 0;border:1px solid #ddd;border-radius:6px}.inline-image-note{display:inline-block;margin:2px 0;font-size:12px}.attachment-list{list-style:none;padding:0;margin:8px 0 0}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px}.login h1{font-size:22px}.toolbar{gap:12px;align-items:flex-end}.preset-bar,.toolbar{display:flex;flex-wrap:wrap;margin-bottom:16px}.preset-bar{gap:8px}.search-field{margin-bottom:20px}.search-field label{display:block;font-weight:600;margin-bottom:6px}.search-input{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:6px 6px 6px 12px;max-width:560px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .1s,box-shadow .1s}.search-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(25,118,210,.15)}.search-input .search-icon{color:var(--muted);font-size:16px;line-height:1}.search-input input{flex:1 1;border:none;outline:none;font:inherit;padding:8px 0;background:transparent}.search-input button{flex:none}.tag{display:inline-block;background:#eef;border-radius:10px;padding:1px 8px;font-size:12px;margin-right:4px}.section-head{font-size:14px;color:var(--muted);margin:20px 0 8px}.metric-link{display:block;text-decoration:none;color:inherit;transition:box-shadow .1s,border-color .1s}.metric-link:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(25,118,210,.15);text-decoration:none}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:16px}.tabs .tab{background:none;padding:10px 16px;font-weight:600;color:var(--muted);border:none;border-bottom:2px solid transparent;margin-bottom:-2px}.tabs .tab.active{color:var(--primary);border-bottom-color:var(--primary)}.panel{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:16px}.panel-title{font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.panel-respond{border-left:4px solid var(--primary)}.panel-status{border-left:4px solid #f57c00}.system-event{align-self:center;text-align:center;background:#f0f1f4;color:#555;border:1px solid var(--border);border-radius:14px;padding:4px 14px;font-size:12px;max-width:90%}.system-event-icon{margin-right:4px}.cc-editor{display:flex;flex-direction:column;gap:8px}.cc-results{border:1px solid var(--border);border-radius:6px;background:#fafafa;max-height:220px;overflow-y:auto}.cc-results ul{list-style:none;margin:0;padding:0}.cc-result-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border)}.cc-result-row:last-child{border-bottom:none}.cc-result-info strong{font-weight:600}.cc-result-row button{padding:4px 12px;font-size:12px;border-radius:6px}.cc-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{gap:6px;background:#e3f2fd;border-radius:14px;padding:3px 6px 3px 12px;font-size:13px}.chip,.chip-x{display:inline-flex;align-items:center}.chip-x{background:rgba(0,0,0,.12);border:none;border-radius:50%;width:18px;height:18px;line-height:1;color:#333;justify-content:center;font-size:14px}.chip-x:hover{background:rgba(0,0,0,.25)}.person-name{position:relative;display:inline-block}.person-name-trigger{font:inherit;cursor:pointer}.person-name-trigger:hover{text-decoration:underline}.person-pop{position:absolute;top:100%;left:0;z-index:30;margin-top:4px;min-width:220px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:#333;cursor:auto}.person-pop-row{display:flex;gap:8px;align-items:baseline}.person-pop-label{flex:0 0 56px;color:var(--muted);font-size:12px}.mobile-only-block,.nav-backdrop,.nav-toggle{display:none}@media (max-width:768px){body{font-size:15px}.mobile-only-block{display:block;box-sizing:border-box}a.mobile-only-block.btn-primary{width:100%;text-align:center;margin-bottom:16px}.topbar{flex-wrap:wrap;padding:8px 12px;gap:6px 10px}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:6px;width:40px;height:40px;font-size:20px;color:var(--text);flex:none}.topbar .brand{flex:1 1;min-width:0}.topbar .brand a{font-size:13px;gap:6px}.topbar .brand a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .brand-logo{height:1.4em}.topbar .user{gap:10px;font-size:13px;flex-wrap:wrap;width:100%;justify-content:flex-end}.topbar .roles{display:none}.sidenav{position:fixed;top:0;left:0;bottom:0;z-index:50;width:270px;max-width:80vw;padding-top:12px;transform:translateX(-100%);transition:transform .2s ease;box-shadow:2px 0 12px rgba(0,0,0,.18);overflow-y:auto}.sidenav.open{transform:translateX(0)}.sidenav li{padding:10px 20px}.sidenav li.section{padding-top:14px}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}.content{padding:16px 12px;max-width:100%}h1{font-size:20px}h2{font-size:17px}.metrics{flex-direction:column;gap:10px}.metric{min-width:0;width:100%;padding:14px 18px}.toolbar{flex-direction:column;align-items:stretch;gap:10px}.toolbar h1{margin-right:0!important}.toolbar .field{width:100%;max-width:none!important;margin-bottom:0}.toolbar>.btn-primary,.toolbar>button{width:100%;text-align:center;box-sizing:border-box}.field{max-width:none!important}.row{gap:10px}.row .field{flex:1 1 100%}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs .tab{white-space:nowrap;padding:10px 14px}.preset-bar button{flex:1 1 auto}.search-field,.search-input{max-width:none}table.grid{background:transparent}table.grid thead{display:none}table.grid,table.grid tbody,table.grid td,table.grid tr{display:block;width:100%}table.grid tr{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:6px 14px;background:#fff}table.grid td{border:none;padding:7px 0;display:flex;gap:12px;align-items:baseline;justify-content:space-between;text-align:right}table.grid td+td{border-top:1px solid #f0f0f0}table.grid td:before{content:attr(data-label);color:var(--muted);font-size:12px;flex:0 0 6.5em;white-space:nowrap}table.grid td.cell-subject,table.grid td:before{font-weight:600;text-align:left}table.grid td.cell-subject a{word-break:break-word}}