summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/coderay/scanners/css.rb34
-rw-r--r--test/scanners/css/S5.expected.raydebug6
-rw-r--r--test/scanners/css/redmine.expected.raydebug685
-rw-r--r--test/scanners/css/redmine.in.css685
-rw-r--r--test/scanners/css/standard.expected.raydebug8
-rw-r--r--test/scanners/css/standard.in.css8
6 files changed, 1417 insertions, 9 deletions
diff --git a/lib/coderay/scanners/css.rb b/lib/coderay/scanners/css.rb
index 848f136..bfa8bda 100644
--- a/lib/coderay/scanners/css.rb
+++ b/lib/coderay/scanners/css.rb
@@ -38,6 +38,7 @@ module Scanners
Id = /##{Name}/
Class = /\.#{Name}/
PseudoClass = /:#{Name}/
+ AttributeSelector = /\[[^\]]*\]?/
end
@@ -55,8 +56,8 @@ module Scanners
kind = :space
elsif case states.last
- when :initial
- if scan(/#{RE::Ident}|\*/ox)
+ when :initial, :media
+ if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
kind = :keyword
elsif scan RE::Class
kind = :class
@@ -64,10 +65,19 @@ module Scanners
kind = :constant
elsif scan RE::PseudoClass
kind = :pseudo_class
- elsif scan RE::Name
- kind = :identifier
+ elsif match = scan(RE::AttributeSelector)
+ # TODO: Improve highlighting inside of attribute selectors.
+ tokens << [:open, :string]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content] if match.size > 2
+ tokens << [match[-1,1], :delimiter] if match[-1] == ?]
+ tokens << [:close, :string]
+ next
+ elsif match = scan(/@media/)
+ kind = :directive
+ states.push :media_before_name
end
-
+
when :block
if scan(/(?>#{RE::Ident})(?!\()/ox)
if value_expected
@@ -77,6 +87,18 @@ module Scanners
end
end
+ when :media_before_name
+ if scan RE::Ident
+ kind = :type
+ states[-1] = :media_after_name
+ end
+
+ when :media_after_name
+ if scan(/\{/)
+ kind = :operator
+ states[-1] = :media
+ end
+
when :comment
if scan(/(?:[^*\s]|\*(?!\/))+/)
kind = :comment
@@ -103,7 +125,7 @@ module Scanners
elsif scan(/\}/)
value_expected = false
- if states.last == :block
+ if states.last == :block || states.last == :media
kind = :operator
states.pop
else
diff --git a/test/scanners/css/S5.expected.raydebug b/test/scanners/css/S5.expected.raydebug
index 9f9a724..7f79eb5 100644
--- a/test/scanners/css/S5.expected.raydebug
+++ b/test/scanners/css/S5.expected.raydebug
@@ -236,6 +236,6 @@ constant(#slide0) operator({)key(visibility)operator(:) value(visible)operator(;
keyword(div)constant(#controls) operator({)key(position)operator(:) value(absolute)operator(;)operator(})
constant(#footer)operator(>)keyword(div)constant(#controls) operator({)key(position)operator(:) value(fixed)operator(;)operator(})
class(.handout) operator({)key(display)operator(:) value(none)operator(;)operator(})
-directive(@import) keyword(url)operator(()keyword(s5-core)class(.css)operator(\))operator(;) comment(/*) comment(required) comment(to) comment(make) comment(the) comment(slide) comment(show) comment(run) comment(at) comment(all) comment(*/)
-directive(@import) keyword(url)operator(()keyword(framing)class(.css)operator(\))operator(;) comment(/*) comment(sets) comment(basic) comment(placement) comment(and) comment(size) comment(of) comment(slide) comment(components) comment(*/)
-directive(@import) keyword(url)operator(()keyword(pretty)class(.css)operator(\))operator(;) comment(/*) comment(stuff) comment(that) comment(makes) comment(the) comment(slides) comment(look) comment(better) comment(than) comment(blah) comment(*/) \ No newline at end of file
+directive(@import) string<delimiter(url()content(s5-core.css)delimiter(\))>operator(;) comment(/*) comment(required) comment(to) comment(make) comment(the) comment(slide) comment(show) comment(run) comment(at) comment(all) comment(*/)
+directive(@import) string<delimiter(url()content(framing.css)delimiter(\))>operator(;) comment(/*) comment(sets) comment(basic) comment(placement) comment(and) comment(size) comment(of) comment(slide) comment(components) comment(*/)
+directive(@import) string<delimiter(url()content(pretty.css)delimiter(\))>operator(;) comment(/*) comment(stuff) comment(that) comment(makes) comment(the) comment(slides) comment(look) comment(better) comment(than) comment(blah) comment(*/) \ No newline at end of file
diff --git a/test/scanners/css/redmine.expected.raydebug b/test/scanners/css/redmine.expected.raydebug
new file mode 100644
index 0000000..074e5b7
--- /dev/null
+++ b/test/scanners/css/redmine.expected.raydebug
@@ -0,0 +1,685 @@
+keyword(body) operator({) key(font-family)operator(:) value(Verdana)operator(,) value(sans-serif)operator(;) key(font-size)operator(:) float(12px)operator(;) key(color)operator(:)color(#484848)operator(;) key(margin)operator(:) float(0)operator(;) key(padding)operator(:) float(0)operator(;) key(min-width)operator(:) float(900px)operator(;) operator(})
+
+keyword(h1)operator(,) keyword(h2)operator(,) keyword(h3)operator(,) keyword(h4) operator({) key(font-family)operator(:) string<delimiter(")content(Trebuchet MS)delimiter(")>operator(,) value(Verdana)operator(,) value(sans-serif)operator(;)operator(})
+keyword(h1) operator({)key(margin)operator(:)float(0)operator(;) key(padding)operator(:)float(0)operator(;) key(font-size)operator(:) float(24px)operator(;)operator(})
+keyword(h2)operator(,) class(.wiki) keyword(h1) operator({)key(font-size)operator(:) float(20px)operator(;)key(padding)operator(:) float(2px) float(10px) float(1px) float(0px)operator(;)key(margin)operator(:) float(0) float(0) float(10px) float(0)operator(;) key(border-bottom)operator(:) float(1px) value(solid) color(#bbbbbb)operator(;) key(color)operator(:) color(#444)operator(;)operator(})
+keyword(h3)operator(,) class(.wiki) keyword(h2) operator({)key(font-size)operator(:) float(16px)operator(;)key(padding)operator(:) float(2px) float(10px) float(1px) float(0px)operator(;)key(margin)operator(:) float(0) float(0) float(10px) float(0)operator(;) key(border-bottom)operator(:) float(1px) value(solid) color(#bbbbbb)operator(;) key(color)operator(:) color(#444)operator(;)operator(})
+keyword(h4)operator(,) class(.wiki) keyword(h3) operator({)key(font-size)operator(:) float(13px)operator(;)key(padding)operator(:) float(2px) float(10px) float(1px) float(0px)operator(;)key(margin-bottom)operator(:) float(5px)operator(;) key(border-bottom)operator(:) float(1px) value(dotted) color(#bbbbbb)operator(;) key(color)operator(:) color(#444)operator(;)operator(})
+
+comment(/*)comment(****) comment(Layout) comment(****)comment(*/)
+constant(#wrapper) operator({)key(background)operator(:) value(white)operator(;)operator(})
+
+constant(#top-menu) operator({)key(background)operator(:) color(#2C4056)operator(;) key(color)operator(:) color(#fff)operator(;) key(height)operator(:)float(1.8em)operator(;) key(font-size)operator(:) float(0.8em)operator(;) key(padding)operator(:) float(2px) float(2px) float(0px) float(6px)operator(;)operator(})
+constant(#top-menu) keyword(ul) operator({)key(margin)operator(:) float(0)operator(;) key(padding)operator(:) float(0)operator(;)operator(})
+constant(#top-menu) keyword(li) operator({)
+ key(float)operator(:)value(left)operator(;)
+ key(list-style-type)operator(:)value(none)operator(;)
+ key(margin)operator(:) float(0px) float(0px) float(0px) float(0px)operator(;)
+ key(padding)operator(:) float(0px) float(0px) float(0px) float(0px)operator(;)
+ key(white-space)operator(:)value(nowrap)operator(;)
+operator(})
+constant(#top-menu) keyword(a) operator({)key(color)operator(:) color(#fff)operator(;) key(margin-right)operator(:) float(8px)operator(;) key(font-weight)operator(:) value(bold)operator(;)operator(})
+constant(#top-menu) constant(#loggedas) operator({) key(float)operator(:) value(right)operator(;) key(margin-right)operator(:) float(0.5em)operator(;) key(color)operator(:) color(#fff)operator(;) operator(})
+
+constant(#account) operator({)key(float)operator(:)value(right)operator(;)operator(})
+
+constant(#header) operator({)key(height)operator(:)float(5.3em)operator(;)key(margin)operator(:)float(0)operator(;)key(background-color)operator(:)color(#507AAA)operator(;)key(color)operator(:)color(#f8f8f8)operator(;) key(padding)operator(:) float(4px) float(8px) float(0px) float(6px)operator(;) key(position)operator(:)value(relative)operator(;)operator(})
+constant(#header) keyword(a) operator({)key(color)operator(:)color(#f8f8f8)operator(;)operator(})
+constant(#quick-search) operator({)key(float)operator(:)value(right)operator(;)operator(})
+
+constant(#main-menu) operator({)key(position)operator(:) value(absolute)operator(;) key(bottom)operator(:) float(0px)operator(;) key(left)operator(:)float(6px)operator(;) key(margin-right)operator(:) float(-500px)operator(;)operator(})
+constant(#main-menu) keyword(ul) operator({)key(margin)operator(:) float(0)operator(;) key(padding)operator(:) float(0)operator(;)operator(})
+constant(#main-menu) keyword(li) operator({)
+ key(float)operator(:)value(left)operator(;)
+ key(list-style-type)operator(:)value(none)operator(;)
+ key(margin)operator(:) float(0px) float(2px) float(0px) float(0px)operator(;)
+ key(padding)operator(:) float(0px) float(0px) float(0px) float(0px)operator(;)
+ key(white-space)operator(:)value(nowrap)operator(;)
+operator(})
+constant(#main-menu) keyword(li) keyword(a) operator({)
+ key(display)operator(:) value(block)operator(;)
+ key(color)operator(:) color(#fff)operator(;)
+ key(text-decoration)operator(:) value(none)operator(;)
+ key(font-weight)operator(:) value(bold)operator(;)
+ key(margin)operator(:) float(0)operator(;)
+ key(padding)operator(:) float(4px) float(10px) float(4px) float(10px)operator(;)
+operator(})
+constant(#main-menu) keyword(li) keyword(a)pseudo_class(:hover) operator({)key(background)operator(:)color(#759FCF)operator(;) key(color)operator(:)color(#fff)operator(;)operator(})
+constant(#main-menu) keyword(li) keyword(a)class(.selected)operator(,) constant(#main-menu) keyword(li) keyword(a)class(.selected)pseudo_class(:hover) operator({)key(background)operator(:)color(#fff)operator(;) key(color)operator(:)color(#555)operator(;)operator(})
+
+constant(#main) operator({)key(background-color)operator(:)color(#EEEEEE)operator(;)operator(})
+
+constant(#sidebar)operator({) key(float)operator(:) value(right)operator(;) key(width)operator(:) float(17%)operator(;) key(position)operator(:) value(relative)operator(;) key(z-index)operator(:) float(9)operator(;) key(min-height)operator(:) float(600px)operator(;) key(padding)operator(:) float(0)operator(;) key(margin)operator(:) float(0)operator(;)operator(})
+keyword(*) keyword(html) constant(#sidebar)operator({) key(width)operator(:) float(17%)operator(;) operator(})
+constant(#sidebar) keyword(h3)operator({) key(font-size)operator(:) float(14px)operator(;) key(margin-top)operator(:)float(14px)operator(;) key(color)operator(:) color(#666)operator(;) operator(})
+constant(#sidebar) keyword(hr)operator({) key(width)operator(:) float(100%)operator(;) key(margin)operator(:) float(0) value(auto)operator(;) key(height)operator(:) float(1px)operator(;) key(background)operator(:) color(#ccc)operator(;) key(border)operator(:) float(0)operator(;) operator(})
+keyword(*) keyword(html) constant(#sidebar) keyword(hr)operator({) key(width)operator(:) float(95%)operator(;) key(position)operator(:) value(relative)operator(;) key(left)operator(:) float(-6px)operator(;) key(color)operator(:) color(#ccc)operator(;) operator(})
+
+constant(#content) operator({) key(width)operator(:) float(80%)operator(;) key(background-color)operator(:) color(#fff)operator(;) key(margin)operator(:) float(0px)operator(;) key(border-right)operator(:) float(1px) value(solid) color(#ddd)operator(;) key(padding)operator(:) float(6px) float(10px) float(10px) float(10px)operator(;) key(z-index)operator(:) float(10)operator(;) operator(})
+keyword(*) keyword(html) constant(#content)operator({) key(width)operator(:) float(80%)operator(;) key(padding-left)operator(:) float(0)operator(;) key(margin-top)operator(:) float(0px)operator(;) key(padding)operator(:) float(6px) float(10px) float(10px) float(10px)operator(;)operator(})
+keyword(html)operator(>)keyword(body) constant(#content) operator({) key(min-height)operator(:) float(600px)operator(;) operator(})
+keyword(*) keyword(html) keyword(body) constant(#content) operator({) key(height)operator(:) float(600px)operator(;) operator(}) comment(/*) comment(IE) comment(*/)
+
+constant(#main)class(.nosidebar) constant(#sidebar)operator({) key(display)operator(:) value(none)operator(;) operator(})
+constant(#main)class(.nosidebar) constant(#content)operator({) key(width)operator(:) value(auto)operator(;) key(border-right)operator(:) float(0)operator(;) operator(})
+
+constant(#footer) operator({)key(clear)operator(:) value(both)operator(;) key(border-top)operator(:) float(1px) value(solid) color(#bbb)operator(;) key(font-size)operator(:) float(0.9em)operator(;) key(color)operator(:) color(#aaa)operator(;) key(padding)operator(:) float(5px)operator(;) key(text-align)operator(:)value(center)operator(;) key(background)operator(:)color(#fff)operator(;)operator(})
+
+constant(#login-form) keyword(table) operator({)key(margin-top)operator(:)float(5em)operator(;) key(padding)operator(:)float(1em)operator(;) key(margin-left)operator(:) value(auto)operator(;) key(margin-right)operator(:) value(auto)operator(;) key(border)operator(:) float(2px) value(solid) color(#FDBF3B)operator(;) key(background-color)operator(:)color(#FFEBC1)operator(;) operator(})
+constant(#login-form) keyword(table) keyword(td) operator({)key(padding)operator(:) float(6px)operator(;)operator(})
+constant(#login-form) keyword(label) operator({)key(font-weight)operator(:) value(bold)operator(;)operator(})
+
+class(.clear)pseudo_class(:after)operator({) key(content)operator(:) string<delimiter(")content(.)delimiter(")>operator(;) key(display)operator(:) value(block)operator(;) key(height)operator(:) float(0)operator(;) key(clear)operator(:) value(both)operator(;) key(visibility)operator(:) value(hidden)operator(;) operator(})
+
+comment(/*)comment(****) comment(Links) comment(****)comment(*/)
+keyword(a)operator(,) keyword(a)pseudo_class(:link)operator(,) keyword(a)pseudo_class(:visited)operator({) key(color)operator(:) color(#2A5685)operator(;) key(text-decoration)operator(:) value(none)operator(;) operator(})
+keyword(a)pseudo_class(:hover)operator(,) keyword(a)pseudo_class(:active)operator({) key(color)operator(:) color(#c61a1a)operator(;) key(text-decoration)operator(:) value(underline)operator(;)operator(})
+keyword(a) keyword(img)operator({) key(border)operator(:) float(0)operator(;) operator(})
+
+keyword(a)class(.issue)class(.closed) operator({) key(text-decoration)operator(:) value(line-through)operator(;) operator(})
+
+comment(/*)comment(****) comment(Tables) comment(****)comment(*/)
+keyword(table)class(.list) operator({) key(border)operator(:) float(1px) value(solid) color(#e4e4e4)operator(;) key(border-collapse)operator(:) value(collapse)operator(;) key(width)operator(:) float(100%)operator(;) key(margin-bottom)operator(:) float(4px)operator(;) operator(})
+keyword(table)class(.list) keyword(th) operator({) key(background-color)operator(:)color(#EEEEEE)operator(;) key(padding)operator(:) float(4px)operator(;) key(white-space)operator(:)value(nowrap)operator(;) operator(})
+keyword(table)class(.list) keyword(td) operator({) key(vertical-align)operator(:) value(top)operator(;) operator(})
+keyword(table)class(.list) keyword(td)class(.id) operator({) key(width)operator(:) float(2%)operator(;) key(text-align)operator(:) value(center)operator(;)operator(})
+keyword(table)class(.list) keyword(td)class(.checkbox) operator({) key(width)operator(:) float(15px)operator(;) key(padding)operator(:) float(0px)operator(;)operator(})
+
+keyword(tr)class(.issue) operator({) key(text-align)operator(:) value(center)operator(;) key(white-space)operator(:) value(nowrap)operator(;) operator(})
+keyword(tr)class(.issue) keyword(td)class(.subject)operator(,) keyword(tr)class(.issue) keyword(td)class(.category)operator(,) keyword(td)class(.assigned_to) operator({) key(white-space)operator(:) value(normal)operator(;) operator(})
+keyword(tr)class(.issue) keyword(td)class(.subject) operator({) key(text-align)operator(:) value(left)operator(;) operator(})
+keyword(tr)class(.issue) keyword(td)class(.done_ratio) keyword(table)class(.progress) operator({) key(margin-left)operator(:)value(auto)operator(;) key(margin-right)operator(:) value(auto)operator(;)operator(})
+
+keyword(tr)class(.entry) operator({) key(border)operator(:) float(1px) value(solid) color(#f8f8f8)operator(;) operator(})
+keyword(tr)class(.entry) keyword(td) operator({) key(white-space)operator(:) value(nowrap)operator(;) operator(})
+keyword(tr)class(.entry) keyword(td)class(.filename) operator({) key(width)operator(:) float(30%)operator(;) operator(})
+keyword(tr)class(.entry) keyword(td)class(.size) operator({) key(text-align)operator(:) value(right)operator(;) key(font-size)operator(:) float(90%)operator(;) operator(})
+keyword(tr)class(.entry) keyword(td)class(.revision)operator(,) keyword(tr)class(.entry) keyword(td)class(.author) operator({) key(text-align)operator(:) value(center)operator(;) operator(})
+keyword(tr)class(.entry) keyword(td)class(.age) operator({) key(text-align)operator(:) value(right)operator(;) operator(})
+
+keyword(tr)class(.entry) keyword(span)class(.expander) operator({)key(background-image)operator(:) string<delimiter(url()content(../images/bullet_toggle_plus.png)delimiter(\))>operator(;) key(padding-left)operator(:) float(8px)operator(;) key(margin-left)operator(:) float(0)operator(;) key(cursor)operator(:) value(pointer)operator(;)operator(})
+keyword(tr)class(.entry)class(.open) keyword(span)class(.expander) operator({)key(background-image)operator(:) string<delimiter(url()content(../images/bullet_toggle_minus.png)delimiter(\))>operator(;)operator(})
+keyword(tr)class(.entry)class(.file) keyword(td)class(.filename) keyword(a) operator({) key(margin-left)operator(:) float(16px)operator(;) operator(})
+
+keyword(tr)class(.changeset) keyword(td)class(.author) operator({) key(text-align)operator(:) value(center)operator(;) key(width)operator(:) float(15%)operator(;) operator(})
+keyword(tr)class(.changeset) keyword(td)class(.committed_on) operator({) key(text-align)operator(:) value(center)operator(;) key(width)operator(:) float(15%)operator(;) operator(})
+
+keyword(tr)class(.message) operator({) key(height)operator(:) float(2.6em)operator(;) operator(})
+keyword(tr)class(.message) keyword(td)class(.last_message) operator({) key(font-size)operator(:) float(80%)operator(;) operator(})
+keyword(tr)class(.message)class(.locked) keyword(td)class(.subject) keyword(a) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/locked.png)delimiter(\))>operator(;) operator(})
+keyword(tr)class(.message)class(.sticky) keyword(td)class(.subject) keyword(a) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/sticky.png)delimiter(\))>operator(;) key(font-weight)operator(:) value(bold)operator(;) operator(})
+
+keyword(tr)class(.user) keyword(td) operator({) key(width)operator(:)float(13%)operator(;) operator(})
+keyword(tr)class(.user) keyword(td)class(.email) operator({) key(width)operator(:)float(18%)operator(;) operator(})
+keyword(tr)class(.user) keyword(td) operator({) key(white-space)operator(:) value(nowrap)operator(;) operator(})
+keyword(tr)class(.user)class(.locked)operator(,) keyword(tr)class(.user)class(.registered) operator({) key(color)operator(:) color(#aaa)operator(;) operator(})
+keyword(tr)class(.user)class(.locked) keyword(a)operator(,) keyword(tr)class(.user)class(.registered) keyword(a) operator({) key(color)operator(:) color(#aaa)operator(;) operator(})
+
+keyword(tr)class(.time-entry) operator({) key(text-align)operator(:) value(center)operator(;) key(white-space)operator(:) value(nowrap)operator(;) operator(})
+keyword(tr)class(.time-entry) keyword(td)class(.subject)operator(,) keyword(tr)class(.time-entry) keyword(td)class(.comments) operator({) key(text-align)operator(:) value(left)operator(;) key(white-space)operator(:) value(normal)operator(;) operator(})
+keyword(td)class(.hours) operator({) key(text-align)operator(:) value(right)operator(;) key(font-weight)operator(:) value(bold)operator(;) key(padding-right)operator(:) float(0.5em)operator(;) operator(})
+keyword(td)class(.hours) class(.hours-dec) operator({) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+
+keyword(table)class(.plugins) keyword(td) operator({) key(vertical-align)operator(:) value(middle)operator(;) operator(})
+keyword(table)class(.plugins) keyword(td)class(.configure) operator({) key(text-align)operator(:) value(right)operator(;) key(padding-right)operator(:) float(1em)operator(;) operator(})
+keyword(table)class(.plugins) keyword(span)class(.name) operator({) key(font-weight)operator(:) value(bold)operator(;) key(display)operator(:) value(block)operator(;) key(margin-bottom)operator(:) float(6px)operator(;) operator(})
+keyword(table)class(.plugins) keyword(span)class(.description) operator({) key(display)operator(:) value(block)operator(;) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+keyword(table)class(.plugins) keyword(span)class(.url) operator({) key(display)operator(:) value(block)operator(;) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+
+keyword(table)class(.list) keyword(tbody) keyword(tr)pseudo_class(:hover) operator({) key(background-color)operator(:)color(#ffffdd)operator(;) operator(})
+keyword(table) keyword(td) operator({)key(padding)operator(:)float(2px)operator(;)operator(})
+keyword(table) keyword(p) operator({)key(margin)operator(:)float(0)operator(;)operator(})
+class(.odd) operator({)key(background-color)operator(:)color(#f6f7f8)operator(;)operator(})
+class(.even) operator({)key(background-color)operator(:) color(#fff)operator(;)operator(})
+
+class(.highlight) operator({) key(background-color)operator(:) color(#FCFD8D)operator(;)operator(})
+class(.highlight)class(.token-1) operator({) key(background-color)operator(:) color(#faa)operator(;)operator(})
+class(.highlight)class(.token-2) operator({) key(background-color)operator(:) color(#afa)operator(;)operator(})
+class(.highlight)class(.token-3) operator({) key(background-color)operator(:) color(#aaf)operator(;)operator(})
+
+class(.box)operator({)
+key(padding)operator(:)float(6px)operator(;)
+key(margin-bottom)operator(:) float(10px)operator(;)
+key(background-color)operator(:)color(#f6f6f6)operator(;)
+key(color)operator(:)color(#505050)operator(;)
+key(line-height)operator(:)float(1.5em)operator(;)
+key(border)operator(:) float(1px) value(solid) color(#e4e4e4)operator(;)
+operator(})
+
+keyword(div)class(.square) operator({)
+ key(border)operator(:) float(1px) value(solid) color(#999)operator(;)
+ key(float)operator(:) value(left)operator(;)
+ key(margin)operator(:) float(.3em) float(.4em) float(0) float(.4em)operator(;)
+ key(overflow)operator(:) value(hidden)operator(;)
+ key(width)operator(:) float(.6em)operator(;) key(height)operator(:) float(.6em)operator(;)
+operator(})
+class(.contextual) operator({)key(float)operator(:)value(right)operator(;) key(white-space)operator(:) value(nowrap)operator(;) key(line-height)operator(:)float(1.4em)operator(;)key(margin-top)operator(:)float(5px)operator(;) key(padding-left)operator(:) float(10px)operator(;) key(font-size)operator(:)float(0.9em)operator(;)operator(})
+class(.contextual) keyword(input) operator({)key(font-size)operator(:)float(0.9em)operator(;)operator(})
+
+class(.splitcontentleft)operator({)key(float)operator(:)value(left)operator(;) key(width)operator(:)float(49%)operator(;)operator(})
+class(.splitcontentright)operator({)key(float)operator(:)value(right)operator(;) key(width)operator(:)float(49%)operator(;)operator(})
+keyword(form) operator({)key(display)operator(:) value(inline)operator(;)operator(})
+keyword(input)operator(,) keyword(select) operator({)key(vertical-align)operator(:) value(middle)operator(;) key(margin-top)operator(:) float(1px)operator(;) key(margin-bottom)operator(:) float(1px)operator(;)operator(})
+keyword(fieldset) operator({)key(border)operator(:) float(1px) value(solid) color(#e4e4e4)operator(;) key(margin)operator(:)float(0)operator(;)operator(})
+keyword(legend) operator({)key(color)operator(:) color(#484848)operator(;)operator(})
+keyword(hr) operator({) key(width)operator(:) float(100%)operator(;) key(height)operator(:) float(1px)operator(;) key(background)operator(:) color(#ccc)operator(;) key(border)operator(:) float(0)operator(;)operator(})
+keyword(blockquote) operator({) key(font-style)operator(:) value(italic)operator(;) key(border-left)operator(:) float(3px) value(solid) color(#e0e0e0)operator(;) key(padding-left)operator(:) float(0.6em)operator(;) key(margin-left)operator(:) float(2.4em)operator(;)operator(})
+keyword(blockquote) keyword(blockquote) operator({) key(margin-left)operator(:) float(0)operator(;)operator(})
+keyword(textarea)class(.wiki-edit) operator({) key(width)operator(:) float(99%)operator(;) operator(})
+keyword(li) keyword(p) operator({)key(margin-top)operator(:) float(0)operator(;)operator(})
+keyword(div)class(.issue) operator({)key(background)operator(:)color(#ffffdd)operator(;) key(padding)operator(:)float(6px)operator(;) key(margin-bottom)operator(:)float(6px)operator(;)key(border)operator(:) float(1px) value(solid) color(#d7d7d7)operator(;)operator(})
+keyword(p)class(.breadcrumb) operator({) key(font-size)operator(:) float(0.9em)operator(;) key(margin)operator(:) float(4px) float(0) float(4px) float(0)operator(;)operator(})
+keyword(p)class(.subtitle) operator({) key(font-size)operator(:) float(0.9em)operator(;) key(margin)operator(:) float(-6px) float(0) float(12px) float(0)operator(;) key(font-style)operator(:) value(italic)operator(;) operator(})
+keyword(p)class(.footnote) operator({) key(font-size)operator(:) float(0.9em)operator(;) key(margin-top)operator(:) float(0px)operator(;) key(margin-bottom)operator(:) float(0px)operator(;) operator(})
+
+keyword(fieldset)constant(#filters)operator(,) keyword(fieldset)constant(#date-range) operator({) key(padding)operator(:) float(0.7em)operator(;) key(margin-bottom)operator(:) float(8px)operator(;) operator(})
+keyword(fieldset)constant(#filters) keyword(p) operator({) key(margin)operator(:) float(1.2em) float(0) float(0.8em) float(2px)operator(;) operator(})
+keyword(fieldset)constant(#filters) keyword(table) operator({) key(border-collapse)operator(:) value(collapse)operator(;) operator(})
+keyword(fieldset)constant(#filters) keyword(table) keyword(td) operator({) key(padding)operator(:) float(0)operator(;) key(vertical-align)operator(:) value(middle)operator(;) operator(})
+keyword(fieldset)constant(#filters) keyword(tr)class(.filter) operator({) key(height)operator(:) float(2em)operator(;) operator(})
+keyword(fieldset)constant(#filters) keyword(td)class(.add-filter) operator({) key(text-align)operator(:) value(right)operator(;) key(vertical-align)operator(:) value(top)operator(;) operator(})
+class(.buttons) operator({) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+
+keyword(div)constant(#issue-changesets) operator({)key(float)operator(:)value(right)operator(;) key(width)operator(:)float(45%)operator(;) key(margin-left)operator(:) float(1em)operator(;) key(margin-bottom)operator(:) float(1em)operator(;) key(background)operator(:) color(#fff)operator(;) key(padding-left)operator(:) float(1em)operator(;) key(font-size)operator(:) float(90%)operator(;)operator(})
+keyword(div)constant(#issue-changesets) class(.changeset) operator({) key(padding)operator(:) float(4px)operator(;)operator(})
+keyword(div)constant(#issue-changesets) class(.changeset) operator({) key(border-bottom)operator(:) float(1px) value(solid) color(#ddd)operator(;) operator(})
+keyword(div)constant(#issue-changesets) keyword(p) operator({) key(margin-top)operator(:) float(0)operator(;) key(margin-bottom)operator(:) float(1em)operator(;)operator(})
+
+keyword(div)constant(#activity) keyword(dl)operator(,) constant(#search-results) operator({) key(margin-left)operator(:) float(2em)operator(;) operator(})
+keyword(div)constant(#activity) keyword(dd)operator(,) constant(#search-results) keyword(dd) operator({) key(margin-bottom)operator(:) float(1em)operator(;) key(padding-left)operator(:) float(18px)operator(;) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+keyword(div)constant(#activity) keyword(dt)operator(,) constant(#search-results) keyword(dt) operator({) key(margin-bottom)operator(:) float(0px)operator(;) key(padding-left)operator(:) float(20px)operator(;) key(line-height)operator(:) float(18px)operator(;) key(background-position)operator(:) float(0) float(50%)operator(;) key(background-repeat)operator(:) value(no-repeat)operator(;) operator(})
+keyword(div)constant(#activity) keyword(dt)class(.me) class(.time) operator({) key(border-bottom)operator(:) float(1px) value(solid) color(#999)operator(;) operator(})
+keyword(div)constant(#activity) keyword(dt) class(.time) operator({) key(color)operator(:) color(#777)operator(;) key(font-size)operator(:) float(80%)operator(;) operator(})
+keyword(div)constant(#activity) keyword(dd) class(.description)operator(,) constant(#search-results) keyword(dd) class(.description) operator({) key(font-style)operator(:) value(italic)operator(;) operator(})
+keyword(div)constant(#activity) keyword(span)class(.project)pseudo_class(:after)operator(,) constant(#search-results) keyword(span)class(.project)pseudo_class(:after) operator({) key(content)operator(:) string<delimiter(")content( -)delimiter(")>operator(;) operator(})
+keyword(div)constant(#activity) keyword(dd) keyword(span)class(.description)operator(,) constant(#search-results) keyword(dd) keyword(span)class(.description) operator({) key(display)operator(:)value(block)operator(;) operator(})
+
+constant(#search-results) keyword(dd) operator({) key(margin-bottom)operator(:) float(1em)operator(;) key(padding-left)operator(:) float(20px)operator(;) key(margin-left)operator(:)float(0px)operator(;) operator(})
+
+keyword(div)constant(#search-results-counts) operator({)key(float)operator(:)value(right)operator(;)operator(})
+keyword(div)constant(#search-results-counts) keyword(ul) operator({) key(margin-top)operator(:) float(0.5em)operator(;) operator(})
+keyword(div)constant(#search-results-counts) keyword(li) operator({) key(list-style-type)operator(:)value(none)operator(;) key(float)operator(:) value(left)operator(;) key(margin-left)operator(:) float(1em)operator(;) operator(})
+
+keyword(dt)class(.issue) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/ticket.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.issue-edit) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/ticket_edit.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.issue-closed) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/ticket_checked.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.issue-note) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/ticket_note.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.changeset) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/changeset.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.news) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/news.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.message) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/message.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.reply) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/comments.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.wiki-page) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/wiki_edit.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.attachment) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/attachment.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.document) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/document.png)delimiter(\))>operator(;) operator(})
+keyword(dt)class(.project) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/projects.png)delimiter(\))>operator(;) operator(})
+
+constant(#search-results) keyword(dt)class(.issue)class(.closed) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/ticket_checked.png)delimiter(\))>operator(;) operator(})
+
+keyword(div)constant(#roadmap) keyword(fieldset)class(.related-issues) operator({) key(margin-bottom)operator(:) float(1em)operator(;) operator(})
+keyword(div)constant(#roadmap) keyword(fieldset)class(.related-issues) keyword(ul) operator({) key(margin-top)operator(:) float(0.3em)operator(;) key(margin-bottom)operator(:) float(0.3em)operator(;) operator(})
+keyword(div)constant(#roadmap) class(.wiki) keyword(h1)pseudo_class(:first-child) operator({) key(display)operator(:) value(none)operator(;) operator(})
+keyword(div)constant(#roadmap) class(.wiki) keyword(h1) operator({) key(font-size)operator(:) float(120%)operator(;) operator(})
+keyword(div)constant(#roadmap) class(.wiki) keyword(h2) operator({) key(font-size)operator(:) float(110%)operator(;) operator(})
+
+keyword(div)constant(#version-summary) operator({) key(float)operator(:)value(right)operator(;) key(width)operator(:)float(380px)operator(;) key(margin-left)operator(:) float(16px)operator(;) key(margin-bottom)operator(:) float(16px)operator(;) key(background-color)operator(:) color(#fff)operator(;) operator(})
+keyword(div)constant(#version-summary) keyword(fieldset) operator({) key(margin-bottom)operator(:) float(1em)operator(;) operator(})
+keyword(div)constant(#version-summary) class(.total-hours) operator({) key(text-align)operator(:) value(right)operator(;) operator(})
+
+keyword(table)constant(#time-report) keyword(td)class(.hours)operator(,) keyword(table)constant(#time-report) keyword(th)class(.period)operator(,) keyword(table)constant(#time-report) keyword(th)class(.total) operator({) key(text-align)operator(:) value(right)operator(;) key(padding-right)operator(:) float(0.5em)operator(;) operator(})
+keyword(table)constant(#time-report) keyword(tbody) keyword(tr) operator({) key(font-style)operator(:) value(italic)operator(;) key(color)operator(:) color(#777)operator(;) operator(})
+keyword(table)constant(#time-report) keyword(tbody) keyword(tr)class(.last-level) operator({) key(font-style)operator(:) value(normal)operator(;) key(color)operator(:) color(#555)operator(;) operator(})
+keyword(table)constant(#time-report) keyword(tbody) keyword(tr)class(.total) operator({) key(font-style)operator(:) value(normal)operator(;) key(font-weight)operator(:) value(bold)operator(;) key(color)operator(:) color(#555)operator(;) key(background-color)operator(:)color(#EEEEEE)operator(;) operator(})
+keyword(table)constant(#time-report) class(.hours-dec) operator({) key(font-size)operator(:) float(0.9em)operator(;) operator(})
+
+keyword(ul)class(.properties) operator({)key(padding)operator(:)float(0)operator(;) key(font-size)operator(:) float(0.9em)operator(;) key(color)operator(:) color(#777)operator(;)operator(})
+keyword(ul)class(.properties) keyword(li) operator({)key(list-style-type)operator(:)value(none)operator(;)operator(})
+keyword(ul)class(.properties) keyword(li) keyword(span) operator({)key(font-style)operator(:)value(italic)operator(;)operator(})
+
+class(.total-hours) operator({) key(font-size)operator(:) float(110%)operator(;) key(font-weight)operator(:) value(bold)operator(;) operator(})
+class(.total-hours) keyword(span)class(.hours-int) operator({) key(font-size)operator(:) float(120%)operator(;) operator(})
+
+class(.autoscroll) operator({)key(overflow-x)operator(:) value(auto)operator(;) key(padding)operator(:)float(1px)operator(;) key(margin-bottom)operator(:) float(1.2em)operator(;)operator(})
+constant(#user_firstname)operator(,) constant(#user_lastname)operator(,) constant(#user_mail)operator(,) constant(#my_account_form) keyword(select) operator({) key(width)operator(:) float(90%)operator(;) operator(})
+
+class(.pagination) operator({)key(font-size)operator(:) float(90%)operator(})
+keyword(p)class(.pagination) operator({)key(margin-top)operator(:)float(8px)operator(;)operator(})
+
+comment(/*)comment(****) comment(Tabular) comment(forms) comment(*****)comment(*/)
+class(.tabular) keyword(p)operator({)
+key(margin)operator(:) float(0)operator(;)
+key(padding)operator(:) float(5px) float(0) float(8px) float(0)operator(;)
+key(padding-left)operator(:) float(180px)operator(;) comment(/*)comment(width) comment(of) comment(left) comment(column) comment(containing) comment(the) comment(label) comment(elements)comment(*/)
+key(height)operator(:) float(1%)operator(;)
+key(clear)operator(:)value(left)operator(;)
+operator(})
+
+keyword(html)operator(>)keyword(body) class(.tabular) keyword(p) operator({)key(overflow)operator(:)value(hidden)operator(;)operator(})
+
+class(.tabular) keyword(label)operator({)
+key(font-weight)operator(:) value(bold)operator(;)
+key(float)operator(:) value(left)operator(;)
+key(text-align)operator(:) value(right)operator(;)
+key(margin-left)operator(:) float(-180px)operator(;) comment(/*)comment(width) comment(of) comment(left) comment(column)comment(*/)
+key(width)operator(:) float(175px)operator(;) comment(/*)comment(width) comment(of) comment(labels.) comment(Should) comment(be) comment(smaller) comment(than) comment(left) comment(column) comment(to) comment(create) comment(some) comment(right)
+comment(margin)comment(*/)
+operator(})
+
+class(.tabular) keyword(label)class(.floating)operator({)
+key(font-weight)operator(:) value(normal)operator(;)
+key(margin-left)operator(:) float(0px)operator(;)
+key(text-align)operator(:) value(left)operator(;)
+key(width)operator(:) float(270px)operator(;)
+operator(})
+
+keyword(input)constant(#time_entry_comments) operator({) key(width)operator(:) float(90%)operator(;)operator(})
+
+constant(#preview) keyword(fieldset) operator({)key(margin-top)operator(:) float(1em)operator(;) key(background)operator(:) string<delimiter(url()content(../images/draft.png)delimiter(\))>operator(})
+
+class(.tabular)class(.settings) keyword(p)operator({) key(padding-left)operator(:) float(300px)operator(;) operator(})
+class(.tabular)class(.settings) keyword(label)operator({) key(margin-left)operator(:) float(-300px)operator(;) key(width)operator(:) float(295px)operator(;) operator(})
+
+class(.required) operator({)key(color)operator(:) color(#bb0000)operator(;)operator(})
+class(.summary) operator({)key(font-style)operator(:) value(italic)operator(;)operator(})
+
+constant(#attachments_fields) keyword(input)string<delimiter([)content(type=text)delimiter(])> operator({)key(margin-left)operator(:) float(8px)operator(;) operator(})
+
+keyword(div)class(.attachments) operator({) key(margin-top)operator(:) float(12px)operator(;) operator(})
+keyword(div)class(.attachments) keyword(p) operator({) key(margin)operator(:)float(4px) float(0) float(2px) float(0)operator(;) operator(})
+keyword(div)class(.attachments) keyword(img) operator({) key(vertical-align)operator(:) value(middle)operator(;) operator(})
+keyword(div)class(.attachments) keyword(span)class(.author) operator({) key(font-size)operator(:) float(0.9em)operator(;) key(color)operator(:) color(#888)operator(;) operator(})
+
+keyword(p)class(.other-formats) operator({) key(text-align)operator(:) value(right)operator(;) key(font-size)operator(:)float(0.9em)operator(;) key(color)operator(:) color(#666)operator(;) operator(})
+class(.other-formats) keyword(span) operator(+) keyword(span)pseudo_class(:before) operator({) key(content)operator(:) string<delimiter(")content(| )delimiter(")>operator(;) operator(})
+
+keyword(a)class(.feed) operator({) key(background)operator(:) string<delimiter(url()content(../images/feed.png)delimiter(\))> value(no-repeat) float(1px) float(50%)operator(;) key(padding)operator(:) float(2px) float(0px) float(3px) float(16px)operator(;) operator(})
+
+comment(/*)comment(****) comment(Flash) comment(&) comment(error) comment(messages) comment(***)comment(*/)
+constant(#errorExplanation)operator(,) keyword(div)class(.flash)operator(,) class(.nodata)operator(,) class(.warning) operator({)
+ key(padding)operator(:) float(4px) float(4px) float(4px) float(30px)operator(;)
+ key(margin-bottom)operator(:) float(12px)operator(;)
+ key(font-size)operator(:) float(1.1em)operator(;)
+ key(border)operator(:) float(2px) value(solid)operator(;)
+operator(})
+
+keyword(div)class(.flash) operator({)key(margin-top)operator(:) float(8px)operator(;)operator(})
+
+keyword(div)class(.flash)class(.error)operator(,) constant(#errorExplanation) operator({)
+ key(background)operator(:) string<delimiter(url()content(../images/false.png)delimiter(\))> float(8px) float(5px) value(no-repeat)operator(;)
+ key(background-color)operator(:) color(#ffe3e3)operator(;)
+ key(border-color)operator(:) color(#dd0000)operator(;)
+ key(color)operator(:) color(#550000)operator(;)
+operator(})
+
+keyword(div)class(.flash)class(.notice) operator({)
+ key(background)operator(:) string<delimiter(url()content(../images/true.png)delimiter(\))> float(8px) float(5px) value(no-repeat)operator(;)
+ key(background-color)operator(:) color(#dfffdf)operator(;)
+ key(border-color)operator(:) color(#9fcf9f)operator(;)
+ key(color)operator(:) color(#005f00)operator(;)
+operator(})
+
+keyword(div)class(.flash)class(.warning) operator({)
+ key(background)operator(:) string<delimiter(url()content(../images/warning.png)delimiter(\))> float(8px) float(5px) value(no-repeat)operator(;)
+ key(background-color)operator(:) color(#FFEBC1)operator(;)
+ key(border-color)operator(:) color(#FDBF3B)operator(;)
+ key(color)operator(:) color(#A6750C)operator(;)
+ key(text-align)operator(:) value(left)operator(;)
+operator(})
+
+class(.nodata)operator(,) class(.warning) operator({)
+ key(text-align)operator(:) value(center)operator(;)
+ key(background-color)operator(:) color(#FFEBC1)operator(;)
+ key(border-color)operator(:) color(#FDBF3B)operator(;)
+ key(color)operator(:) color(#A6750C)operator(;)
+operator(})
+
+constant(#errorExplanation) keyword(ul) operator({) key(font-size)operator(:) float(0.9em)operator(;)operator(})
+
+comment(/*)comment(****) comment(Ajax) comment(indicator) comment(*****)comment(*/)
+constant(#ajax-indicator) operator({)
+key(position)operator(:) value(absolute)operator(;) comment(/*) comment(fixed) comment(not) comment(supported) comment(by) comment(IE) comment(*/)
+key(background-color)operator(:)color(#eee)operator(;)
+key(border)operator(:) float(1px) value(solid) color(#bbb)operator(;)
+key(top)operator(:)float(35%)operator(;)
+key(left)operator(:)float(40%)operator(;)
+key(width)operator(:)float(20%)operator(;)
+key(font-weight)operator(:)value(bold)operator(;)
+key(text-align)operator(:)value(center)operator(;)
+key(padding)operator(:)float(0.6em)operator(;)
+key(z-index)operator(:)float(100)operator(;)
+key(filter)operator(:)string<delimiter(alpha()content(opacity=50)delimiter(\))>operator(;)
+key(opacity)operator(:) float(0)float(.5)operator(;)
+operator(})
+
+keyword(html)operator(>)keyword(body) constant(#ajax-indicator) operator({) key(position)operator(:) value(fixed)operator(;) operator(})
+
+constant(#ajax-indicator) keyword(span) operator({)
+key(background-position)operator(:) float(0%) float(40%)operator(;)
+key(background-repeat)operator(:) value(no-repeat)operator(;)
+key(background-image)operator(:) string<delimiter(url()content(../images/loading.gif)delimiter(\))>operator(;)
+key(padding-left)operator(:) float(26px)operator(;)
+key(vertical-align)operator(:) value(bottom)operator(;)
+operator(})
+
+comment(/*)comment(****) comment(Calendar) comment(****)comment(*/)
+keyword(table)class(.cal) operator({)key(border-collapse)operator(:) value(collapse)operator(;) key(width)operator(:) float(100%)operator(;) key(margin)operator(:) float(0px) float(0) float(6px) float(0)operator(;)key(border)operator(:) float(1px) value(solid) color(#d7d7d7)operator(;)operator(})
+keyword(table)class(.cal) keyword(thead) keyword(th) operator({)key(width)operator(:) float(14%)operator(;)operator(})
+keyword(table)class(.cal) keyword(tbody) keyword(tr) operator({)key(height)operator(:) float(100px)operator(;)operator(})
+keyword(table)class(.cal) keyword(th) operator({) key(background-color)operator(:)color(#EEEEEE)operator(;) key(padding)operator(:) float(4px)operator(;) operator(})
+keyword(table)class(.cal) keyword(td) operator({)key(border)operator(:) float(1px) value(solid) color(#d7d7d7)operator(;) key(vertical-align)operator(:) value(top)operator(;) key(font-size)operator(:) float(0.9em)operator(;)operator(})
+keyword(table)class(.cal) keyword(td) keyword(p)class(.day-num) operator({)key(font-size)operator(:) float(1.1em)operator(;) key(text-align)operator(:)value(right)operator(;)operator(})
+keyword(table)class(.cal) keyword(td)class(.odd) keyword(p)class(.day-num) operator({)key(color)operator(:) color(#bbb)operator(;)operator(})
+keyword(table)class(.cal) keyword(td)class(.today) operator({)key(background)operator(:)color(#ffffdd)operator(;)operator(})
+keyword(table)class(.cal) keyword(td)class(.today) keyword(p)class(.day-num) operator({)key(font-weight)operator(:) value(bold)operator(;)operator(})
+
+comment(/*)comment(****) comment(Tooltips) comment(*****)comment(*/)
+class(.tooltip)operator({)key(position)operator(:)value(relative)operator(;)key(z-index)operator(:)float(24)operator(;)operator(})
+class(.tooltip)pseudo_class(:hover)operator({)key(z-index)operator(:)float(25)operator(;)key(color)operator(:)color(#000)operator(;)operator(})
+class(.tooltip) keyword(span)class(.tip)operator({)key(display)operator(:) value(none)operator(;) key(text-align)operator(:)value(left)operator(;)operator(})
+
+keyword(div)class(.tooltip)pseudo_class(:hover) keyword(span)class(.tip)operator({)
+key(display)operator(:)value(block)operator(;)
+key(position)operator(:)value(absolute)operator(;)
+key(top)operator(:)float(12px)operator(;) key(left)operator(:)float(24px)operator(;) key(width)operator(:)float(270px)operator(;)
+key(border)operator(:)float(1px) value(solid) color(#555)operator(;)
+key(background-color)operator(:)color(#fff)operator(;)
+key(padding)operator(:) float(4px)operator(;)
+key(font-size)operator(:) float(0.8em)operator(;)
+key(color)operator(:)color(#505050)operator(;)
+operator(})
+
+comment(/*)comment(****) comment(Progress) comment(bar) comment(****)comment(*/)
+keyword(table)class(.progress) operator({)
+ key(border)operator(:) float(1px) value(solid) color(#D7D7D7)operator(;)
+ key(border-collapse)operator(:) value(collapse)operator(;)
+ key(border-spacing)operator(:) float(0pt)operator(;)
+ key(empty-cells)operator(:) value(show)operator(;)
+ key(text-align)operator(:) value(center)operator(;)
+ key(float)operator(:)value(left)operator(;)
+ key(margin)operator(:) float(1px) float(6px) float(1px) float(0px)operator(;)
+operator(})
+
+keyword(table)class(.progress) keyword(td) operator({) key(height)operator(:) float(0.9em)operator(;) operator(})
+keyword(table)class(.progress) keyword(td)class(.closed) operator({) key(background)operator(:) color(#BAE0BA) value(none) value(repeat) value(scroll) float(0%)operator(;) operator(})
+keyword(table)class(.progress) keyword(td)class(.done) operator({) key(background)operator(:) color(#DEF0DE) value(none) value(repeat) value(scroll) float(0%)operator(;) operator(})
+keyword(table)class(.progress) keyword(td)class(.open) operator({) key(background)operator(:) color(#FFF) value(none) value(repeat) value(scroll) float(0%)operator(;) operator(})
+keyword(p)class(.pourcent) operator({)key(font-size)operator(:) float(80%)operator(;)operator(})
+keyword(p)class(.progress-info) operator({)key(clear)operator(:) value(left)operator(;) key(font-style)operator(:) value(italic)operator(;) key(font-size)operator(:) float(80%)operator(;)operator(})
+
+comment(/*)comment(****) comment(Tabs) comment(****)comment(*/)
+constant(#content) class(.tabs) operator({)key(height)operator(:) float(2.6em)operator(;) key(border-bottom)operator(:) float(1px) value(solid) color(#bbbbbb)operator(;) key(margin-bottom)operator(:)float(1.2em)operator(;) key(position)operator(:)value(relative)operator(;)operator(})
+constant(#content) class(.tabs) keyword(ul) operator({)key(margin)operator(:)float(0)operator(;) key(position)operator(:)value(absolute)operator(;) key(bottom)operator(:)float(-2px)operator(;) key(padding-left)operator(:)float(1em)operator(;)operator(})
+constant(#content) class(.tabs)operator(>)keyword(ul) operator({) key(bottom)operator(:)float(-1px)operator(;) operator(}) comment(/*) comment(others) comment(*/)
+constant(#content) class(.tabs) keyword(ul) keyword(li) operator({)
+key(float)operator(:)value(left)operator(;)
+key(list-style-type)operator(:)value(none)operator(;)
+key(white-space)operator(:)value(nowrap)operator(;)
+key(margin-right)operator(:)float(8px)operator(;)
+key(background)operator(:)color(#fff)operator(;)
+operator(})
+constant(#content) class(.tabs) keyword(ul) keyword(li) keyword(a)operator({)
+key(display)operator(:)value(block)operator(;)
+key(font-size)operator(:) float(0.9em)operator(;)
+key(text-decoration)operator(:)value(none)operator(;)
+key(line-height)operator(:)float(1.3em)operator(;)
+key(padding)operator(:)float(4px) float(6px) float(4px) float(6px)operator(;)
+key(border)operator(:) float(1px) value(solid) color(#ccc)operator(;)
+key(border-bottom)operator(:) float(1px) value(solid) color(#bbbbbb)operator(;)
+key(background-color)operator(:) color(#eeeeee)operator(;)
+key(color)operator(:)color(#777)operator(;)
+key(font-weight)operator(:)value(bold)operator(;)
+operator(})
+
+constant(#content) class(.tabs) keyword(ul) keyword(li) keyword(a)pseudo_class(:hover) operator({)
+key(background-color)operator(:) color(#ffffdd)operator(;)
+key(text-decoration)operator(:)value(none)operator(;)
+operator(})
+
+constant(#content) class(.tabs) keyword(ul) keyword(li) keyword(a)class(.selected) operator({)
+key(background-color)operator(:) color(#fff)operator(;)
+key(border)operator(:) float(1px) value(solid) color(#bbbbbb)operator(;)
+key(border-bottom)operator(:) float(1px) value(solid) color(#fff)operator(;)
+operator(})
+
+constant(#content) class(.tabs) keyword(ul) keyword(li) keyword(a)class(.selected)pseudo_class(:hover) operator({)
+key(background-color)operator(:) color(#fff)operator(;)
+operator(})
+
+comment(/*)comment(****) comment(Diff) comment(****)comment(*/)
+class(.diff_out) operator({) key(background)operator(:) color(#fcc)operator(;) operator(})
+class(.diff_in) operator({) key(background)operator(:) color(#cfc)operator(;) operator(})
+
+comment(/*)comment(****) comment(Wiki) comment(****)comment(*/)
+keyword(div)class(.wiki) keyword(table) operator({)
+ key(border)operator(:) float(1px) value(solid) color(#505050)operator(;)
+ key(border-collapse)operator(:) value(collapse)operator(;)
+ key(margin-bottom)operator(:) float(1em)operator(;)
+operator(})
+
+keyword(div)class(.wiki) keyword(table)operator(,) keyword(div)class(.wiki) keyword(td)operator(,) keyword(div)class(.wiki) keyword(th) operator({)
+ key(border)operator(:) float(1px) value(solid) color(#bbb)operator(;)
+ key(padding)operator(:) float(4px)operator(;)
+operator(})
+
+keyword(div)class(.wiki) class(.external) operator({)
+ key(background-position)operator(:) float(0%) float(60%)operator(;)
+ key(background-repeat)operator(:) value(no-repeat)operator(;)
+ key(padding-left)operator(:) float(12px)operator(;)
+ key(background-image)operator(:) string<delimiter(url()content(../images/external.png)delimiter(\))>operator(;)
+operator(})
+
+keyword(div)class(.wiki) keyword(a)class(.new) operator({)
+ key(color)operator(:) color(#b73535)operator(;)
+operator(})
+
+keyword(div)class(.wiki) keyword(pre) operator({)
+ key(margin)operator(:) float(1em) float(1em) float(1em) float(1.6em)operator(;)
+ key(padding)operator(:) float(2px)operator(;)
+ key(background-color)operator(:) color(#fafafa)operator(;)
+ key(border)operator(:) float(1px) value(solid) color(#dadada)operator(;)
+ key(width)operator(:)float(95%)operator(;)
+ key(overflow-x)operator(:) value(auto)operator(;)
+operator(})
+
+keyword(div)class(.wiki) keyword(ul)class(.toc) operator({)
+ key(background-color)operator(:) color(#ffffdd)operator(;)
+ key(border)operator(:) float(1px) value(solid) color(#e4e4e4)operator(;)
+ key(padding)operator(:) float(4px)operator(;)
+ key(line-height)operator(:) float(1.2em)operator(;)
+ key(margin-bottom)operator(:) float(12px)operator(;)
+ key(margin-right)operator(:) float(12px)operator(;)
+ key(margin-left)operator(:) float(0)operator(;)
+ key(display)operator(:) value(table)
+operator(})
+keyword(*) keyword(html) keyword(div)class(.wiki) keyword(ul)class(.toc) operator({) key(width)operator(:) float(50%)operator(;) operator(}) comment(/*) comment(IE6) comment(doesn't) comment(autosize) comment(div) comment(*/)
+
+keyword(div)class(.wiki) keyword(ul)class(.toc)class(.right) operator({) key(float)operator(:) value(right)operator(;) key(margin-left)operator(:) float(12px)operator(;) key(margin-right)operator(:) float(0)operator(;) key(width)operator(:) value(auto)operator(;) operator(})
+keyword(div)class(.wiki) keyword(ul)class(.toc)class(.left) operator({) key(float)operator(:) value(left)operator(;) key(margin-right)operator(:) float(12px)operator(;) key(margin-left)operator(:) float(0)operator(;) key(width)operator(:) value(auto)operator(;) operator(})
+keyword(div)class(.wiki) keyword(ul)class(.toc) keyword(li) operator({) key(list-style-type)operator(:)value(none)operator(;)operator(})
+keyword(div)class(.wiki) keyword(ul)class(.toc) keyword(li)class(.heading2) operator({) key(margin-left)operator(:) float(6px)operator(;) operator(})
+keyword(div)class(.wiki) keyword(ul)class(.toc) keyword(li)class(.heading3) operator({) key(margin-left)operator(:) float(12px)operator(;) key(font-size)operator(:) float(0.8em)operator(;) operator(})
+
+keyword(div)class(.wiki) keyword(ul)class(.toc) keyword(a) operator({)
+ key(font-size)operator(:) float(0.9em)operator(;)
+ key(font-weight)operator(:) value(normal)operator(;)
+ key(text-decoration)operator(:) value(none)operator(;)
+ key(color)operator(:) color(#606060)operator(;)
+operator(})
+keyword(div)class(.wiki) keyword(ul)class(.toc) keyword(a)pseudo_class(:hover) operator({) key(color)operator(:) color(#c61a1a)operator(;) key(text-decoration)operator(:) value(underline)operator(;)operator(})
+
+keyword(a)class(.wiki-anchor) operator({) key(display)operator(:) value(none)operator(;) key(margin-left)operator(:) float(6px)operator(;) key(text-decoration)operator(:) value(none)operator(;) operator(})
+keyword(a)class(.wiki-anchor)pseudo_class(:hover) operator({) key(color)operator(:) color(#aaa) important(!important)operator(;) key(text-decoration)operator(:) value(none)operator(;) operator(})
+keyword(h1)pseudo_class(:hover) keyword(a)class(.wiki-anchor)operator(,) keyword(h2)pseudo_class(:hover) keyword(a)class(.wiki-anchor)operator(,) keyword(h3)pseudo_class(:hover) keyword(a)class(.wiki-anchor) operator({) key(display)operator(:) value(inline)operator(;) key(color)operator(:) color(#ddd)operator(;) operator(})
+
+comment(/*)comment(****) comment(My) comment(page) comment(layout) comment(****)comment(*/)
+class(.block-receiver) operator({)
+key(border)operator(:)float(1px) value(dashed) color(#c0c0c0)operator(;)
+key(margin-bottom)operator(:) float(20px)operator(;)
+key(padding)operator(:) float(15px) float(0) float(15px) float(0)operator(;)
+operator(})
+
+class(.mypage-box) operator({)
+key(margin)operator(:)float(0) float(0) float(20px) float(0)operator(;)
+key(color)operator(:)color(#505050)operator(;)
+key(line-height)operator(:)float(1.5em)operator(;)
+operator(})
+
+class(.handle) operator({)
+key(cursor)operator(:) value(move)operator(;)
+operator(})
+
+keyword(a)class(.close-icon) operator({)
+key(display)operator(:)value(block)operator(;)
+key(margin-top)operator(:)float(3px)operator(;)
+key(overflow)operator(:)value(hidden)operator(;)
+key(width)operator(:)float(12px)operator(;)
+key(height)operator(:)float(12px)operator(;)
+key(background-repeat)operator(:) value(no-repeat)operator(;)
+key(cursor)operator(:)value(pointer)operator(;)
+key(background-image)operator(:)string<delimiter(url()content('../images/close.png')delimiter(\))>operator(;)
+operator(})
+
+keyword(a)class(.close-icon)pseudo_class(:hover) operator({)
+key(background-image)operator(:)string<delimiter(url()content('../images/close_hl.png')delimiter(\))>operator(;)
+operator(})
+
+comment(/*)comment(****) comment(Gantt) comment(chart) comment(****)comment(*/)
+class(.gantt_hdr) operator({)
+ key(position)operator(:)value(absolute)operator(;)
+ key(top)operator(:)float(0)operator(;)
+ key(height)operator(:)float(16px)operator(;)
+ key(border-top)operator(:) float(1px) value(solid) color(#c0c0c0)operator(;)
+ key(border-bottom)operator(:) float(1px) value(solid) color(#c0c0c0)operator(;)
+ key(border-right)operator(:) float(1px) value(solid) color(#c0c0c0)operator(;)
+ key(text-align)operator(:) value(center)operator(;)
+ key(overflow)operator(:) value(hidden)operator(;)
+operator(})
+
+class(.task) operator({)
+ key(position)operator(:) value(absolute)operator(;)
+ key(height)operator(:)float(8px)operator(;)
+ key(font-size)operator(:)float(0.8em)operator(;)
+ key(color)operator(:)color(#888)operator(;)
+ key(padding)operator(:)float(0)operator(;)
+ key(margin)operator(:)float(0)operator(;)
+ key(line-height)operator(:)float(0.8em)operator(;)
+operator(})
+
+class(.task_late) operator({) key(background)operator(:)color(#f66) string<delimiter(url()content(../images/task_late.png)delimiter(\))>operator(;) key(border)operator(:) float(1px) value(solid) color(#f66)operator(;) operator(})
+class(.task_done) operator({) key(background)operator(:)color(#66f) string<delimiter(url()content(../images/task_done.png)delimiter(\))>operator(;) key(border)operator(:) float(1px) value(solid) color(#66f)operator(;) operator(})
+class(.task_todo) operator({) key(background)operator(:)color(#aaa) string<delimiter(url()content(../images/task_todo.png)delimiter(\))>operator(;) key(border)operator(:) float(1px) value(solid) color(#aaa)operator(;) operator(})
+class(.milestone) operator({) key(background-image)operator(:)string<delimiter(url()content(../images/milestone.png)delimiter(\))>operator(;) key(background-repeat)operator(:) value(no-repeat)operator(;) key(border)operator(:) float(0)operator(;) operator(})
+
+comment(/*)comment(****) comment(Icons) comment(****)comment(*/)
+class(.icon) operator({)
+key(background-position)operator(:) float(0%) float(40%)operator(;)
+key(background-repeat)operator(:) value(no-repeat)operator(;)
+key(padding-left)operator(:) float(20px)operator(;)
+key(padding-top)operator(:) float(2px)operator(;)
+key(padding-bottom)operator(:) float(3px)operator(;)
+operator(})
+
+class(.icon22) operator({)
+key(background-position)operator(:) float(0%) float(40%)operator(;)
+key(background-repeat)operator(:) value(no-repeat)operator(;)
+key(padding-left)operator(:) float(26px)operator(;)
+key(line-height)operator(:) float(22px)operator(;)
+key(vertical-align)operator(:) value(middle)operator(;)
+operator(})
+
+class(.icon-add) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/add.png)delimiter(\))>operator(;) operator(})
+class(.icon-edit) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/edit.png)delimiter(\))>operator(;) operator(})
+class(.icon-copy) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/copy.png)delimiter(\))>operator(;) operator(})
+class(.icon-del) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/delete.png)delimiter(\))>operator(;) operator(})
+class(.icon-move) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/move.png)delimiter(\))>operator(;) operator(})
+class(.icon-save) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/save.png)delimiter(\))>operator(;) operator(})
+class(.icon-cancel) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/cancel.png)delimiter(\))>operator(;) operator(})
+class(.icon-file) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/file.png)delimiter(\))>operator(;) operator(})
+class(.icon-folder) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/folder.png)delimiter(\))>operator(;) operator(})
+class(.open) class(.icon-folder) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/folder_open.png)delimiter(\))>operator(;) operator(})
+class(.icon-package) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/package.png)delimiter(\))>operator(;) operator(})
+class(.icon-home) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/home.png)delimiter(\))>operator(;) operator(})
+class(.icon-user) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/user.png)delimiter(\))>operator(;) operator(})
+class(.icon-mypage) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/user_page.png)delimiter(\))>operator(;) operator(})
+class(.icon-admin) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/admin.png)delimiter(\))>operator(;) operator(})
+class(.icon-projects) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/projects.png)delimiter(\))>operator(;) operator(})
+class(.icon-help) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/help.png)delimiter(\))>operator(;) operator(})
+class(.icon-attachment) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/attachment.png)delimiter(\))>operator(;) operator(})
+class(.icon-index) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/index.png)delimiter(\))>operator(;) operator(})
+class(.icon-history) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/history.png)delimiter(\))>operator(;) operator(})
+class(.icon-time) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/time.png)delimiter(\))>operator(;) operator(})
+class(.icon-stats) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/stats.png)delimiter(\))>operator(;) operator(})
+class(.icon-warning) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/warning.png)delimiter(\))>operator(;) operator(})
+class(.icon-fav) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/fav.png)delimiter(\))>operator(;) operator(})
+class(.icon-fav-off) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/fav_off.png)delimiter(\))>operator(;) operator(})
+class(.icon-reload) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/reload.png)delimiter(\))>operator(;) operator(})
+class(.icon-lock) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/locked.png)delimiter(\))>operator(;) operator(})
+class(.icon-unlock) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/unlock.png)delimiter(\))>operator(;) operator(})
+class(.icon-checked) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/true.png)delimiter(\))>operator(;) operator(})
+class(.icon-details) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/zoom_in.png)delimiter(\))>operator(;) operator(})
+class(.icon-report) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/report.png)delimiter(\))>operator(;) operator(})
+class(.icon-comment) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/comment.png)delimiter(\))>operator(;) operator(})
+
+class(.icon22-projects) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/projects.png)delimiter(\))>operator(;) operator(})
+class(.icon22-users) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/users.png)delimiter(\))>operator(;) operator(})
+class(.icon22-tracker) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/tracker.png)delimiter(\))>operator(;) operator(})
+class(.icon22-role) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/role.png)delimiter(\))>operator(;) operator(})
+class(.icon22-workflow) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/workflow.png)delimiter(\))>operator(;) operator(})
+class(.icon22-options) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/options.png)delimiter(\))>operator(;) operator(})
+class(.icon22-notifications) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/notifications.png)delimiter(\))>operator(;) operator(})
+class(.icon22-authent) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/authent.png)delimiter(\))>operator(;) operator(})
+class(.icon22-info) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/info.png)delimiter(\))>operator(;) operator(})
+class(.icon22-comment) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/comment.png)delimiter(\))>operator(;) operator(})
+class(.icon22-package) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/package.png)delimiter(\))>operator(;) operator(})
+class(.icon22-settings) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/settings.png)delimiter(\))>operator(;) operator(})
+class(.icon22-plugin) operator({) key(background-image)operator(:) string<delimiter(url()content(../images/22x22/plugin.png)delimiter(\))>operator(;) operator(})
+
+keyword(img)class(.gravatar) operator({)
+ key(padding)operator(:) float(2px)operator(;)
+ key(border)operator(:) value(solid) float(1px) color(#d5d5d5)operator(;)
+ key(background)operator(:) color(#fff)operator(;)
+operator(})
+
+keyword(div)class(.issue) keyword(img)class(.gravatar) operator({)
+ key(float)operator(:) value(right)operator(;)
+ key(margin)operator(:) float(0) float(0) float(0) float(1em)operator(;)
+ key(padding)operator(:) float(5px)operator(;)
+operator(})
+
+keyword(div)class(.issue) keyword(table) keyword(img)class(.gravatar) operator({)
+ key(height)operator(:) float(14px)operator(;)
+ key(width)operator(:) float(14px)operator(;)
+ key(padding)operator(:) float(2px)operator(;)
+ key(float)operator(:) value(left)operator(;)
+ key(margin)operator(:) float(0) float(0.5em) float(0) float(0)operator(;)
+operator(})
+
+constant(#history) keyword(img)class(.gravatar) operator({)
+ key(padding)operator(:) float(3px)operator(;)
+ key(margin)operator(:) float(0) float(1.5em) float(1em) float(0)operator(;)
+ key(float)operator(:) value(left)operator(;)
+operator(})
+
+keyword(td)class(.username) keyword(img)class(.gravatar) operator({)
+ key(float)operator(:) value(left)operator(;)
+ key(margin)operator(:) float(0) float(1em) float(0) float(0)operator(;)
+operator(})
+
+constant(#activity) keyword(dt) keyword(img)class(.gravatar) operator({)
+ key(float)operator(:) value(left)operator(;)
+ key(margin)operator(:) float(0) float(1em) float(1em) float(0)operator(;)
+operator(})
+
+constant(#activity) keyword(dt)operator(,)
+class(.journal) operator({)
+ key(clear)operator(:) value(left)operator(;)
+operator(})
+
+keyword(h2) keyword(img) operator({) key(vertical-align)operator(:)value(middle)operator(;) operator(})
+
+
+comment(/*)comment(****) comment(Media) comment(print) comment(specific) comment(styles) comment(****)comment(*/)
+directive(@media) type(print) operator({)
+ constant(#top-menu)operator(,) constant(#header)operator(,) constant(#main-menu)operator(,) constant(#sidebar)operator(,) constant(#footer)operator(,) class(.contextual)operator(,) class(.other-formats) operator({) key(display)operator(:)value(none)operator(;) operator(})
+ constant(#main) operator({) key(background)operator(:) color(#fff)operator(;) operator(})
+ constant(#content) operator({) key(width)operator(:) float(99%)operator(;) key(margin)operator(:) float(0)operator(;) key(padding)operator(:) float(0)operator(;) key(border)operator(:) float(0)operator(;) key(background)operator(:) color(#fff)operator(;) key(overflow)operator(:) value(visible) important(!important)operator(;)operator(})
+operator(})
diff --git a/test/scanners/css/redmine.in.css b/test/scanners/css/redmine.in.css
new file mode 100644
index 0000000..f0ba792
--- /dev/null
+++ b/test/scanners/css/redmine.in.css
@@ -0,0 +1,685 @@
+body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
+
+h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
+h1 {margin:0; padding:0; font-size: 24px;}
+h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
+h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
+h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
+
+/***** Layout *****/
+#wrapper {background: white;}
+
+#top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
+#top-menu ul {margin: 0; padding: 0;}
+#top-menu li {
+ float:left;
+ list-style-type:none;
+ margin: 0px 0px 0px 0px;
+ padding: 0px 0px 0px 0px;
+ white-space:nowrap;
+}
+#top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
+#top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
+
+#account {float:right;}
+
+#header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
+#header a {color:#f8f8f8;}
+#quick-search {float:right;}
+
+#main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
+#main-menu ul {margin: 0; padding: 0;}
+#main-menu li {
+ float:left;
+ list-style-type:none;
+ margin: 0px 2px 0px 0px;
+ padding: 0px 0px 0px 0px;
+ white-space:nowrap;
+}
+#main-menu li a {
+ display: block;
+ color: #fff;
+ text-decoration: none;
+ font-weight: bold;
+ margin: 0;
+ padding: 4px 10px 4px 10px;
+}
+#main-menu li a:hover {background:#759FCF; color:#fff;}
+#main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
+
+#main {background-color:#EEEEEE;}
+
+#sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
+* html #sidebar{ width: 17%; }
+#sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
+#sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
+* html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
+
+#content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
+* html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
+html>body #content { min-height: 600px; }
+* html body #content { height: 600px; } /* IE */
+
+#main.nosidebar #sidebar{ display: none; }
+#main.nosidebar #content{ width: auto; border-right: 0; }
+
+#footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
+
+#login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
+#login-form table td {padding: 6px;}
+#login-form label {font-weight: bold;}
+
+.clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+
+/***** Links *****/
+a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
+a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
+a img{ border: 0; }
+
+a.issue.closed { text-decoration: line-through; }
+
+/***** Tables *****/
+table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
+table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
+table.list td { vertical-align: top; }
+table.list td.id { width: 2%; text-align: center;}
+table.list td.checkbox { width: 15px; padding: 0px;}
+
+tr.issue { text-align: center; white-space: nowrap; }
+tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
+tr.issue td.subject { text-align: left; }
+tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
+
+tr.entry { border: 1px solid #f8f8f8; }
+tr.entry td { white-space: nowrap; }
+tr.entry td.filename { width: 30%; }
+tr.entry td.size { text-align: right; font-size: 90%; }
+tr.entry td.revision, tr.entry td.author { text-align: center; }
+tr.entry td.age { text-align: right; }
+
+tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
+tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
+tr.entry.file td.filename a { margin-left: 16px; }
+
+tr.changeset td.author { text-align: center; width: 15%; }
+tr.changeset td.committed_on { text-align: center; width: 15%; }
+
+tr.message { height: 2.6em; }
+tr.message td.last_message { font-size: 80%; }
+tr.message.locked td.subject a { background-image: url(../images/locked.png); }
+tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
+
+tr.user td { width:13%; }
+tr.user td.email { width:18%; }
+tr.user td { white-space: nowrap; }
+tr.user.locked, tr.user.registered { color: #aaa; }
+tr.user.locked a, tr.user.registered a { color: #aaa; }
+
+tr.time-entry { text-align: center; white-space: nowrap; }
+tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
+td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
+td.hours .hours-dec { font-size: 0.9em; }
+
+table.plugins td { vertical-align: middle; }
+table.plugins td.configure { text-align: right; padding-right: 1em; }
+table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
+table.plugins span.description { display: block; font-size: 0.9em; }
+table.plugins span.url { display: block; font-size: 0.9em; }
+
+table.list tbody tr:hover { background-color:#ffffdd; }
+table td {padding:2px;}
+table p {margin:0;}
+.odd {background-color:#f6f7f8;}
+.even {background-color: #fff;}
+
+.highlight { background-color: #FCFD8D;}
+.highlight.token-1 { background-color: #faa;}
+.highlight.token-2 { background-color: #afa;}
+.highlight.token-3 { background-color: #aaf;}
+
+.box{
+padding:6px;
+margin-bottom: 10px;
+background-color:#f6f6f6;
+color:#505050;
+line-height:1.5em;
+border: 1px solid #e4e4e4;
+}
+
+div.square {
+ border: 1px solid #999;
+ float: left;
+ margin: .3em .4em 0 .4em;
+ overflow: hidden;
+ width: .6em; height: .6em;
+}
+.contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
+.contextual input {font-size:0.9em;}
+
+.splitcontentleft{float:left; width:49%;}
+.splitcontentright{float:right; width:49%;}
+form {display: inline;}
+input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
+fieldset {border: 1px solid #e4e4e4; margin:0;}
+legend {color: #484848;}
+hr { width: 100%; height: 1px; background: #ccc; border: 0;}
+blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
+blockquote blockquote { margin-left: 0;}
+textarea.wiki-edit { width: 99%; }
+li p {margin-top: 0;}
+div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
+p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
+p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
+p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
+
+fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
+fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
+fieldset#filters table { border-collapse: collapse; }
+fieldset#filters table td { padding: 0; vertical-align: middle; }
+fieldset#filters tr.filter { height: 2em; }
+fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
+.buttons { font-size: 0.9em; }
+
+div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
+div#issue-changesets .changeset { padding: 4px;}
+div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
+div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
+
+div#activity dl, #search-results { margin-left: 2em; }
+div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
+div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
+div#activity dt.me .time { border-bottom: 1px solid #999; }
+div#activity dt .time { color: #777; font-size: 80%; }
+div#activity dd .description, #search-results dd .description { font-style: italic; }
+div#activity span.project:after, #search-results span.project:after { content: " -"; }
+div#activity dd span.description, #search-results dd span.description { display:block; }
+
+#search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
+
+div#search-results-counts {float:right;}
+div#search-results-counts ul { margin-top: 0.5em; }
+div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
+
+dt.issue { background-image: url(../images/ticket.png); }
+dt.issue-edit { background-image: url(../images/ticket_edit.png); }
+dt.issue-closed { background-image: url(../images/ticket_checked.png); }
+dt.issue-note { background-image: url(../images/ticket_note.png); }
+dt.changeset { background-image: url(../images/changeset.png); }
+dt.news { background-image: url(../images/news.png); }
+dt.message { background-image: url(../images/message.png); }
+dt.reply { background-image: url(../images/comments.png); }
+dt.wiki-page { background-image: url(../images/wiki_edit.png); }
+dt.attachment { background-image: url(../images/attachment.png); }
+dt.document { background-image: url(../images/document.png); }
+dt.project { background-image: url(../images/projects.png); }
+
+#search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); }
+
+div#roadmap fieldset.related-issues { margin-bottom: 1em; }
+div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
+div#roadmap .wiki h1:first-child { display: none; }
+div#roadmap .wiki h1 { font-size: 120%; }
+div#roadmap .wiki h2 { font-size: 110%; }
+
+div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
+div#version-summary fieldset { margin-bottom: 1em; }
+div#version-summary .total-hours { text-align: right; }
+
+table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
+table#time-report tbody tr { font-style: italic; color: #777; }
+table#time-report tbody tr.last-level { font-style: normal; color: #555; }
+table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
+table#time-report .hours-dec { font-size: 0.9em; }
+
+ul.properties {padding:0; font-size: 0.9em; color: #777;}
+ul.properties li {list-style-type:none;}
+ul.properties li span {font-style:italic;}
+
+.total-hours { font-size: 110%; font-weight: bold; }
+.total-hours span.hours-int { font-size: 120%; }
+
+.autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
+#user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
+
+.pagination {font-size: 90%}
+p.pagination {margin-top:8px;}
+
+/***** Tabular forms ******/
+.tabular p{
+margin: 0;
+padding: 5px 0 8px 0;
+padding-left: 180px; /*width of left column containing the label elements*/
+height: 1%;
+clear:left;
+}
+
+html>body .tabular p {overflow:hidden;}
+
+.tabular label{
+font-weight: bold;
+float: left;
+text-align: right;
+margin-left: -180px; /*width of left column*/
+width: 175px; /*width of labels. Should be smaller than left column to create some right
+margin*/
+}
+
+.tabular label.floating{
+font-weight: normal;
+margin-left: 0px;
+text-align: left;
+width: 270px;
+}
+
+input#time_entry_comments { width: 90%;}
+
+#preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
+
+.tabular.settings p{ padding-left: 300px; }
+.tabular.settings label{ margin-left: -300px; width: 295px; }
+
+.required {color: #bb0000;}
+.summary {font-style: italic;}
+
+#attachments_fields input[type=text] {margin-left: 8px; }
+
+div.attachments { margin-top: 12px; }
+div.attachments p { margin:4px 0 2px 0; }
+div.attachments img { vertical-align: middle; }
+div.attachments span.author { font-size: 0.9em; color: #888; }
+
+p.other-formats { text-align: right; font-size:0.9em; color: #666; }
+.other-formats span + span:before { content: "| "; }
+
+a.feed { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
+
+/***** Flash & error messages ****/
+#errorExplanation, div.flash, .nodata, .warning {
+ padding: 4px 4px 4px 30px;
+ margin-bottom: 12px;
+ font-size: 1.1em;
+ border: 2px solid;
+}
+
+div.flash {margin-top: 8px;}
+
+div.flash.error, #errorExplanation {
+ background: url(../images/false.png) 8px 5px no-repeat;
+ background-color: #ffe3e3;
+ border-color: #dd0000;
+ color: #550000;
+}
+
+div.flash.notice {
+ background: url(../images/true.png) 8px 5px no-repeat;
+ background-color: #dfffdf;
+ border-color: #9fcf9f;
+ color: #005f00;
+}
+
+div.flash.warning {
+ background: url(../images/warning.png) 8px 5px no-repeat;
+ background-color: #FFEBC1;
+ border-color: #FDBF3B;
+ color: #A6750C;
+ text-align: left;
+}
+
+.nodata, .warning {
+ text-align: center;
+ background-color: #FFEBC1;
+ border-color: #FDBF3B;
+ color: #A6750C;
+}
+
+#errorExplanation ul { font-size: 0.9em;}
+
+/***** Ajax indicator ******/
+#ajax-indicator {
+position: absolute; /* fixed not supported by IE */
+background-color:#eee;
+border: 1px solid #bbb;
+top:35%;
+left:40%;
+width:20%;
+font-weight:bold;
+text-align:center;
+padding:0.6em;
+z-index:100;
+filter:alpha(opacity=50);
+opacity: 0.5;
+}
+
+html>body #ajax-indicator { position: fixed; }
+
+#ajax-indicator span {
+background-position: 0% 40%;
+background-repeat: no-repeat;
+background-image: url(../images/loading.gif);
+padding-left: 26px;
+vertical-align: bottom;
+}
+
+/***** Calendar *****/
+table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
+table.cal thead th {width: 14%;}
+table.cal tbody tr {height: 100px;}
+table.cal th { background-color:#EEEEEE; padding: 4px; }
+table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
+table.cal td p.day-num {font-size: 1.1em; text-align:right;}
+table.cal td.odd p.day-num {color: #bbb;}
+table.cal td.today {background:#ffffdd;}
+table.cal td.today p.day-num {font-weight: bold;}
+
+/***** Tooltips ******/
+.tooltip{position:relative;z-index:24;}
+.tooltip:hover{z-index:25;color:#000;}
+.tooltip span.tip{display: none; text-align:left;}
+
+div.tooltip:hover span.tip{
+display:block;
+position:absolute;
+top:12px; left:24px; width:270px;
+border:1px solid #555;
+background-color:#fff;
+padding: 4px;
+font-size: 0.8em;
+color:#505050;
+}
+
+/***** Progress bar *****/
+table.progress {
+ border: 1px solid #D7D7D7;
+ border-collapse: collapse;
+ border-spacing: 0pt;
+ empty-cells: show;
+ text-align: center;
+ float:left;
+ margin: 1px 6px 1px 0px;
+}
+
+table.progress td { height: 0.9em; }
+table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
+table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
+table.progress td.open { background: #FFF none repeat scroll 0%; }
+p.pourcent {font-size: 80%;}
+p.progress-info {clear: left; font-style: italic; font-size: 80%;}
+
+/***** Tabs *****/
+#content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
+#content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
+#content .tabs>ul { bottom:-1px; } /* others */
+#content .tabs ul li {
+float:left;
+list-style-type:none;
+white-space:nowrap;
+margin-right:8px;
+background:#fff;
+}
+#content .tabs ul li a{
+display:block;
+font-size: 0.9em;
+text-decoration:none;
+line-height:1.3em;
+padding:4px 6px 4px 6px;
+border: 1px solid #ccc;
+border-bottom: 1px solid #bbbbbb;
+background-color: #eeeeee;
+color:#777;
+font-weight:bold;
+}
+
+#content .tabs ul li a:hover {
+background-color: #ffffdd;
+text-decoration:none;
+}
+
+#content .tabs ul li a.selected {
+background-color: #fff;
+border: 1px solid #bbbbbb;
+border-bottom: 1px solid #fff;
+}
+
+#content .tabs ul li a.selected:hover {
+background-color: #fff;
+}
+
+/***** Diff *****/
+.diff_out { background: #fcc; }
+.diff_in { background: #cfc; }
+
+/***** Wiki *****/
+div.wiki table {
+ border: 1px solid #505050;
+ border-collapse: collapse;
+ margin-bottom: 1em;
+}
+
+div.wiki table, div.wiki td, div.wiki th {
+ border: 1px solid #bbb;
+ padding: 4px;
+}
+
+div.wiki .external {
+ background-position: 0% 60%;
+ background-repeat: no-repeat;
+ padding-left: 12px;
+ background-image: url(../images/external.png);
+}
+
+div.wiki a.new {
+ color: #b73535;
+}
+
+div.wiki pre {
+ margin: 1em 1em 1em 1.6em;
+ padding: 2px;
+ background-color: #fafafa;
+ border: 1px solid #dadada;
+ width:95%;
+ overflow-x: auto;
+}
+
+div.wiki ul.toc {
+ background-color: #ffffdd;
+ border: 1px solid #e4e4e4;
+ padding: 4px;
+ line-height: 1.2em;
+ margin-bottom: 12px;
+ margin-right: 12px;
+ margin-left: 0;
+ display: table
+}
+* html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
+
+div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
+div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
+div.wiki ul.toc li { list-style-type:none;}
+div.wiki ul.toc li.heading2 { margin-left: 6px; }
+div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
+
+div.wiki ul.toc a {
+ font-size: 0.9em;
+ font-weight: normal;
+ text-decoration: none;
+ color: #606060;
+}
+div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
+
+a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
+a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
+h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
+
+/***** My page layout *****/
+.block-receiver {
+border:1px dashed #c0c0c0;
+margin-bottom: 20px;
+padding: 15px 0 15px 0;
+}
+
+.mypage-box {
+margin:0 0 20px 0;
+color:#505050;
+line-height:1.5em;
+}
+
+.handle {
+cursor: move;
+}
+
+a.close-icon {
+display:block;
+margin-top:3px;
+overflow:hidden;
+width:12px;
+height:12px;
+background-repeat: no-repeat;
+cursor:pointer;
+background-image:url('../images/close.png');
+}
+
+a.close-icon:hover {
+background-image:url('../images/close_hl.png');
+}
+
+/***** Gantt chart *****/
+.gantt_hdr {
+ position:absolute;
+ top:0;
+ height:16px;
+ border-top: 1px solid #c0c0c0;
+ border-bottom: 1px solid #c0c0c0;
+ border-right: 1px solid #c0c0c0;
+ text-align: center;
+ overflow: hidden;
+}
+
+.task {
+ position: absolute;
+ height:8px;
+ font-size:0.8em;
+ color:#888;
+ padding:0;
+ margin:0;
+ line-height:0.8em;
+}
+
+.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
+.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
+.task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
+.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
+
+/***** Icons *****/
+.icon {
+background-position: 0% 40%;
+background-repeat: no-repeat;
+padding-left: 20px;
+padding-top: 2px;
+padding-bottom: 3px;
+}
+
+.icon22 {
+background-position: 0% 40%;
+background-repeat: no-repeat;
+padding-left: 26px;
+line-height: 22px;
+vertical-align: middle;
+}
+
+.icon-add { background-image: url(../images/add.png); }
+.icon-edit { background-image: url(../images/edit.png); }
+.icon-copy { background-image: url(../images/copy.png); }
+.icon-del { background-image: url(../images/delete.png); }
+.icon-move { background-image: url(../images/move.png); }
+.icon-save { background-image: url(../images/save.png); }
+.icon-cancel { background-image: url(../images/cancel.png); }
+.icon-file { background-image: url(../images/file.png); }
+.icon-folder { background-image: url(../images/folder.png); }
+.open .icon-folder { background-image: url(../images/folder_open.png); }
+.icon-package { background-image: url(../images/package.png); }
+.icon-home { background-image: url(../images/home.png); }
+.icon-user { background-image: url(../images/user.png); }
+.icon-mypage { background-image: url(../images/user_page.png); }
+.icon-admin { background-image: url(../images/admin.png); }
+.icon-projects { background-image: url(../images/projects.png); }
+.icon-help { background-image: url(../images/help.png); }
+.icon-attachment { background-image: url(../images/attachment.png); }
+.icon-index { background-image: url(../images/index.png); }
+.icon-history { background-image: url(../images/history.png); }
+.icon-time { background-image: url(../images/time.png); }
+.icon-stats { background-image: url(../images/stats.png); }
+.icon-warning { background-image: url(../images/warning.png); }
+.icon-fav { background-image: url(../images/fav.png); }
+.icon-fav-off { background-image: url(../images/fav_off.png); }
+.icon-reload { background-image: url(../images/reload.png); }
+.icon-lock { background-image: url(../images/locked.png); }
+.icon-unlock { background-image: url(../images/unlock.png); }
+.icon-checked { background-image: url(../images/true.png); }
+.icon-details { background-image: url(../images/zoom_in.png); }
+.icon-report { background-image: url(../images/report.png); }
+.icon-comment { background-image: url(../images/comment.png); }
+
+.icon22-projects { background-image: url(../images/22x22/projects.png); }
+.icon22-users { background-image: url(../images/22x22/users.png); }
+.icon22-tracker { background-image: url(../images/22x22/tracker.png); }
+.icon22-role { background-image: url(../images/22x22/role.png); }
+.icon22-workflow { background-image: url(../images/22x22/workflow.png); }
+.icon22-options { background-image: url(../images/22x22/options.png); }
+.icon22-notifications { background-image: url(../images/22x22/notifications.png); }
+.icon22-authent { background-image: url(../images/22x22/authent.png); }
+.icon22-info { background-image: url(../images/22x22/info.png); }
+.icon22-comment { background-image: url(../images/22x22/comment.png); }
+.icon22-package { background-image: url(../images/22x22/package.png); }
+.icon22-settings { background-image: url(../images/22x22/settings.png); }
+.icon22-plugin { background-image: url(../images/22x22/plugin.png); }
+
+img.gravatar {
+ padding: 2px;
+ border: solid 1px #d5d5d5;
+ background: #fff;
+}
+
+div.issue img.gravatar {
+ float: right;
+ margin: 0 0 0 1em;
+ padding: 5px;
+}
+
+div.issue table img.gravatar {
+ height: 14px;
+ width: 14px;
+ padding: 2px;
+ float: left;
+ margin: 0 0.5em 0 0;
+}
+
+#history img.gravatar {
+ padding: 3px;
+ margin: 0 1.5em 1em 0;
+ float: left;
+}
+
+td.username img.gravatar {
+ float: left;
+ margin: 0 1em 0 0;
+}
+
+#activity dt img.gravatar {
+ float: left;
+ margin: 0 1em 1em 0;
+}
+
+#activity dt,
+.journal {
+ clear: left;
+}
+
+h2 img { vertical-align:middle; }
+
+
+/***** Media print specific styles *****/
+@media print {
+ #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
+ #main { background: #fff; }
+ #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
+}
diff --git a/test/scanners/css/standard.expected.raydebug b/test/scanners/css/standard.expected.raydebug
new file mode 100644
index 0000000..461fd08
--- /dev/null
+++ b/test/scanners/css/standard.expected.raydebug
@@ -0,0 +1,8 @@
+directive(@import) string<delimiter(url()content(redsauce.css)delimiter(\))>operator(;) comment(/*) comment(colour) comment(file) comment(*/)
+directive(@import) string<delimiter(url()content(theme.css)delimiter(\))>operator(;) comment(/*) comment(colour) comment(file) comment(*/) keyword(body) operator({)
+ key(margin)operator(:)float(0)operator(;)
+ key(padding)operator(:)float(0)operator(;)
+ key(font-family)operator(:) value(verdana)operator(,) value(arial)operator(,) value(sans-serif)operator(;)
+ key(font-size)operator(:) float(11px)operator(;)
+ key(line-height)operator(:)float(137%)operator(;)
+operator(})
diff --git a/test/scanners/css/standard.in.css b/test/scanners/css/standard.in.css
new file mode 100644
index 0000000..0100e95
--- /dev/null
+++ b/test/scanners/css/standard.in.css
@@ -0,0 +1,8 @@
+@import url(redsauce.css); /* colour file */
+@import url(theme.css); /* colour file */ body {
+ margin:0;
+ padding:0;
+ font-family: verdana, arial, sans-serif;
+ font-size: 11px;
+ line-height:137%;
+}