:root{--carpo-red: #e01414;--carpo-red-soft: rgba(224, 20, 20, .1);--ink: #1d1d1f;--ink-2: #6e6e73;--ink-3: #8e8e93;--line: rgba(0, 0, 0, .08);--bg: #ececef;--panel: #ffffff;--sidebar: rgba(245, 245, 247, .72);--radius: 14px;--radius-lg: 20px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;padding:10px;gap:10px}.sidebar{width:250px;flex-shrink:0;background:var(--sidebar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-lg);display:flex;flex-direction:column;padding:14px 12px;box-shadow:0 1px 3px #0000000a}.traffic{display:flex;gap:8px;padding:4px 8px 14px}.traffic i{width:12px;height:12px;border-radius:50%;display:inline-block}.traffic .r{background:#ff5f57}.traffic .y{background:#febc2e}.traffic .g{background:#28c840}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 16px}.brand img{width:30px;height:30px;border-radius:8px}.brand span{font-size:19px;font-weight:700;letter-spacing:-.02em}.nav{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-section{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:14px 10px 4px}.nav-item{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:#0000000a}.nav-item.active{background:#fff;color:var(--carpo-red);box-shadow:0 1px 2px #0000000f}.nav-item.active svg{color:var(--carpo-red)}.nav-item svg{width:18px;height:18px;color:var(--ink-2);flex-shrink:0}.nav-item .ext{margin-left:auto;color:var(--ink-3)}.nav-item .badge{margin-left:auto;background:var(--carpo-red);color:#fff;font-size:11px;font-weight:600;border-radius:10px;padding:1px 7px}.user{display:flex;align-items:center;gap:10px;padding:10px 8px 4px;border-top:1px solid var(--line);margin-top:8px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--carpo-red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.user .meta{line-height:1.2;overflow:hidden}.user .meta b{font-size:13px;font-weight:600;display:block}.user .meta small{font-size:11px;color:var(--ink-3)}.user .out{margin-left:auto;background:none;border:none;color:var(--ink-3);cursor:pointer;padding:4px;border-radius:6px}.user .out:hover{background:#0000000d;color:var(--carpo-red)}.content{flex:1;min-width:0;background:var(--panel);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column}.content-inner{padding:34px 40px;max-width:920px;width:100%;overflow-y:auto;flex:1}.toolframe{flex:1;width:100%;border:0;display:block;background:#fff}h1.page{font-size:30px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}.subtitle{color:var(--ink-2);font-size:15px;margin:0 0 26px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-decoration:none;color:inherit;transition:transform .12s ease,box-shadow .12s ease;display:block}.tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.tile .ico{width:46px;height:46px;border-radius:12px;background:var(--carpo-red-soft);color:var(--carpo-red);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.tile .ico svg{width:24px;height:24px}.tile h3{margin:0 0 4px;font-size:16px;font-weight:600}.tile p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--carpo-red);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{filter:brightness(.94)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:#0000000d;color:var(--ink)}.btn.ghost:hover{background:#00000017;filter:none}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink)}input,textarea,select{width:100%;font:inherit;font-size:14px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--carpo-red);box-shadow:0 0 0 3px var(--carpo-red-soft)}textarea{resize:vertical;min-height:96px}.ticket-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;cursor:pointer;background:#fff;text-decoration:none;color:inherit}.ticket-row:hover{background:#fafafa}.ticket-row .ref{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.ticket-row .main{flex:1;min-width:0}.ticket-row .main b{font-size:15px;font-weight:600;display:block}.ticket-row .main small{color:var(--ink-2);font-size:12px}.pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}.st-nouveau{background:var(--carpo-red-soft);color:var(--carpo-red)}.st-en_cours{background:#e6f0ff;color:#0a63d6}.st-en_attente{background:#fff2d9;color:#b06a00}.st-resolu{background:#e3f6ea;color:#1a8a44}.st-ferme{background:#eee;color:#6e6e73}.tabs{display:flex;gap:6px;margin-bottom:20px}.tab{padding:7px 14px;border-radius:9px;font-size:13px;font-weight:600;background:#0000000d;color:var(--ink-2);border:none;cursor:pointer}.tab.active{background:var(--carpo-red);color:#fff}.comment{border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-bottom:10px;background:#fff}.comment.me{background:var(--carpo-red-soft);border-color:transparent}.comment .who{font-size:12px;font-weight:600;margin-bottom:4px}.comment .body{font-size:14px;color:var(--ink);white-space:pre-wrap;line-height:1.5}.comment .when{font-size:11px;color:var(--ink-3);margin-top:4px}.login-wrap{display:flex;height:100vh;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:#fff;border-radius:22px;padding:40px 36px;width:380px;box-shadow:0 20px 60px #0000001f;text-align:center}.login-card .brand{justify-content:center;padding:0 0 8px}.login-card .brand img{width:42px;height:42px}.login-card .brand span{font-size:24px}.login-card p.tag{color:var(--ink-2);font-size:14px;margin:0 0 26px}.login-card .field{text-align:left}.login-card .btn{width:100%;justify-content:center;margin-top:6px}.login-card .switch{margin-top:18px;font-size:13px;color:var(--ink-2)}.login-card .switch button{background:none;border:none;color:var(--carpo-red);font-weight:600;cursor:pointer;font-size:13px}.err{background:#ffe9e9;color:#c00;font-size:13px;padding:10px 14px;border-radius:10px;margin-bottom:14px;text-align:left}.ok{background:#e3f6ea;color:#1a8a44;font-size:13px;padding:10px 14px;border-radius:10px;margin-bottom:14px;text-align:left}.empty{text-align:center;color:var(--ink-3);padding:60px 20px;font-size:15px}.muted{color:var(--ink-2)}.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}@media (max-width: 720px){.app{padding:0;gap:0;flex-direction:column}.sidebar{width:auto;border-radius:0;flex-direction:row;overflow-x:auto;padding:8px}.nav{flex-direction:row}.nav-section,.traffic,.brand,.user{display:none}.content{border-radius:0}.content-inner{padding:20px}}
